diff --git a/.fossa.yml b/.fossa.yml new file mode 100644 index 0000000000000000000000000000000000000000..185a8a978a99056c7fe2d58748b63cfc114c6244 --- /dev/null +++ b/.fossa.yml @@ -0,0 +1,30 @@ +# Generated by FOSSA CLI (https://github.com/fossas/fossa-cli) +# Visit https://fossa.com to learn more + +version: 2 +cli: + server: https://app.fossa.com + fetcher: custom + project: Indexer +analyze: + modules: + - name: indexer-service + type: mvn + target: pom.xml + path: . + - name: indexer-core + type: mvn + target: indexer-core/pom.xml + path: . + - name: indexer-aws + type: mvn + target: provider/indexer-aws/pom.xml + path: . + - name: indexer-azure + type: mvn + target: provider/indexer-azure/pom.xml + path: . + - name: indexer-gcp + type: mvn + target: provider/indexer-gcp/pom.xml + path: . diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000000000000000000000000000000000000..29aea813863e3270b5412e143f841682193e3689 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,18 @@ +variables: + AWS_BUILD_SUBDIR: provider/indexer-aws + AWS_APPLICATION_NAME: os-indexer + AWS_ENVIRONMENT: dev + GCP_BUILD_SUBDIR: provider/indexer-gcp + GCP_INT_TEST_SUBDIR: testing/indexer-test-gcp + GCP_APPLICATION_NAME: osdu-indexer + GCP_ENVIRONMENT: dev + GCP_PROJECT: opendes + GCP_TENANT_NAME: opendes + GCP_DEPLOY_ENV: p4d + GCP_DOMAIN: cloud.slb-ds.com + GCP_STORAGE_URL: https://osdu-indexer-dot-opendes.appspot.com/api/storage/v2/ + +include: + - project: 'osdu/platform/ci-cd-pipelines' + ref: 'master' + file: 'temp-service.gitlab-ci.yml' diff --git a/.mvn/community-maven.settings.xml b/.mvn/community-maven.settings.xml new file mode 100644 index 0000000000000000000000000000000000000000..75718a6d51b789d04f859ab8906b094bfb76b825 --- /dev/null +++ b/.mvn/community-maven.settings.xml @@ -0,0 +1,55 @@ +<settings> + <profiles> + <profile> + <!-- This profile uses the CI-Token to authenticate with the server, and is the default case --> + <id>GitLab-Authenticate-With-Job-Token</id> + <activation> + <activeByDefault>true</activeByDefault> + </activation> + <properties> + <gitlab-server>community-maven-via-job-token</gitlab-server> + </properties> + </profile> + + <profile> + <!-- This profile uses a personal token to authenticate, which is useful for local or manual runs. The + presence of the COMMUNITY_MAVEN_TOKEN variable triggers this and overrides the CI Token + based authentication --> + <id>GitLab-Authenticate-With-Private-Token</id> + <activation> + <property> + <name>env.COMMUNITY_MAVEN_TOKEN</name> + </property> + </activation> + <properties> + <gitlab-server>community-maven-via-private-token</gitlab-server> + </properties> + </profile> + </profiles> + + <servers> + <server> + <id>community-maven-via-job-token</id> + <configuration> + <httpHeaders> + <property> + <name>Job-Token</name> + <value>${env.CI_JOB_TOKEN}</value> + </property> + </httpHeaders> + </configuration> + </server> + + <server> + <id>community-maven-via-private-token</id> + <configuration> + <httpHeaders> + <property> + <name>Private-Token</name> + <value>${env.COMMUNITY_MAVEN_TOKEN}</value> + </property> + </httpHeaders> + </configuration> + </server> + </servers> +</settings> diff --git a/.mvn/wrapper/maven-wrapper.properties b/.mvn/wrapper/maven-wrapper.properties new file mode 100644 index 0000000000000000000000000000000000000000..f6d13c19a3593fec5bf7cd75bd0f2ac53b16ad65 --- /dev/null +++ b/.mvn/wrapper/maven-wrapper.properties @@ -0,0 +1 @@ +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.3.9/apache-maven-3.3.9-bin.zip \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..8dada3edaf50dbc082c9a125058f25def75e625a --- /dev/null +++ b/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + 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. diff --git a/NOTICE b/NOTICE new file mode 100644 index 0000000000000000000000000000000000000000..c2b2df630a852d6da44e3325304ee0e356bf8c2d --- /dev/null +++ b/NOTICE @@ -0,0 +1,677 @@ +# 3rd-Party Software License Notice +Generated by fossa-cli (https://github.com/fossas/fossa-cli). +This software includes the following software and licenses: + +======================================================================== +Apache-2.0 +======================================================================== +The following software have components provided under the terms of this license: + +- ASM Core (from ) +- ASM based accessors helper used by json-smart (from ) +- AWS Java SDK for AWS AppSync (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS Application Auto Scaling (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS Application Discovery Service (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS Auto Scaling Plans (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS Batch (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS Budgets (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS Certificate Manager (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS Certificate Manager Private Certificate Authority (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS Cloud9 (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS CloudFormation (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS CloudHSM V2 (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS CloudTrail (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS Code Build (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS CodeCommit (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS CodeDeploy (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS CodePipeline (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS CodeStar (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS Config (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS Cost Explorer (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS Cost and Usage Report (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS Data Pipeline (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS Database Migration Service (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS Device Farm (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS Direct Connect (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS Directory Service (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS Elastic Beanstalk (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS Elemental MediaConvert (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS Elemental MediaLive (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS Elemental MediaPackage (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS Elemental MediaStore (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS Elemental MediaStore Data Plane (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS GameLift (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS Glue (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS Greengrass (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS Health APIs and Notifications (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS IAM (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS Import/Export (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS IoT (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS IoT Analytics (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS IoT Jobs Data Plane (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS KMS (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS Lambda (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS Lex (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS Marketplace Commerce Analytics (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS Marketplace Entitlement (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS Marketplace Metering Service (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS Migration Hub (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS Mobile (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS OpsWorks (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS OpsWorks for Chef Automate (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS Organizations (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS Pricing (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS Resource Groups (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS Resource Groups Tagging API (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS STS (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS Secrets Manager (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS Server Migration (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS Service Catalog (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS Shield (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS Step Functions (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS Storage Gateway (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS Support (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS WAF (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS X-Ray (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWSServerlessApplicationRepository (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Alexa For Business (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon API Gateway (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon AppStream (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon Athena (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon CloudDirectory (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon CloudFront (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon CloudSearch (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon CloudWatch (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon CloudWatch Events (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon CloudWatch Logs (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon Cognito Identity (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon Cognito Identity Provider Service (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon Cognito Sync (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon Comprehend (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon Connect (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon DynamoDB (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon DynamoDB Accelerator (DAX) (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon EC2 (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon EMR (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon ElastiCache (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon Elastic File System (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon Elastic Transcoder (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon Elasticsearch Service (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon Glacier (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon GuardDuty (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon Inspector Service (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon Kinesis (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon Kinesis Video Streams (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon Lex Model Building (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon Lightsail (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon Machine Learning (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon Mechanical Turk Requester (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon Pinpoint (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon Polly (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon RDS (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon Redshift (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon Rekognition (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon Route 53 Auto Naming (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon Route53 (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon S3 (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon SES (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon SNS (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon SQS (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon SWF (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon SageMaker (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon SageMaker Runtime (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon SimpleDB (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon Snowball (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon Transcribe (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon Translate (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon WorkDocs (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon WorkMail (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon WorkSpaces (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AmazonMQ (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Auto Scaling (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Elastic Load Balancing (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Elastic Load Balancing (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Firewall Management (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for the AWS CloudHSM (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for the AWS Simple Systems Management (SSM) Service (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for the Amazon EC2 Container Registry (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for the Amazon EC2 Container Service (from https://aws.amazon.com/sdkforjava) +- AWS SDK For Java (from https://aws.amazon.com/sdkforjava) +- AWS SDK for Java - BOM (from https://aws.amazon.com/sdkforjava) +- AWS SDK for Java - Core (from https://aws.amazon.com/sdkforjava) +- AWS SDK for Java - Models (from https://aws.amazon.com/sdkforjava) +- Apache Commons BeanUtils (from http://commons.apache.org/proper/commons-beanutils/) +- Apache Commons Codec (from http://commons.apache.org/proper/commons-codec/) +- Apache Commons Codec (from http://commons.apache.org/proper/commons-codec/) +- Apache Commons Lang (from http://commons.apache.org/proper/commons-lang/) +- Apache Commons Logging (from http://commons.apache.org/proper/commons-logging/) +- Apache HttpAsyncClient (from http://hc.apache.org/httpcomponents-asyncclient) +- Apache HttpClient (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 ) +- Apache Log4j to SLF4J Adapter (from ) +- AssertJ fluent assertions (from ) +- Bean Validation API (from http://beanvalidation.org) +- Byte Buddy (without dependencies) (from ) +- Byte Buddy Java agent (from ) +- ClassMate (from http://github.com/cowtowncoder/java-classmate) +- Cloud Storage JSON API v1-rev58-1.21.0 (from ) +- CloudWatch Metrics for AWS Java SDK (from https://aws.amazon.com/sdkforjava) +- Commons Lang (from http://commons.apache.org/lang/) +- Data Mapper for Jackson (from http://jackson.codehaus.org) +- Elastic JNA Distribution (from https://github.com/java-native-access/jna) +- Elasticsearch: 5.0.0-alpha5 (from https://github.com/elastic/elasticsearch) +- FindBugs-jsr305 (from http://findbugs.sourceforge.net/) +- Google Cloud Datastore (from https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-datastore) +- Google Cloud Key Management Service (KMS) API v1-rev22-1.23.0 (from ) +- Google Cloud Logging (from https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-logging) +- Google Cloud Pub/Sub (from https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-pubsub) +- Google HTTP Client Library for Java (from https://github.com/google/google-http-java-client.git) +- Google HTTP Client Library for Java (from https://github.com/google/google-http-java-client.git) +- Gson (from https://github.com/google/gson) +- Guava InternalFutureFailureAccess and InternalFutures (from ) +- Guava ListenableFuture only (from ) +- Guava: Google Core Libraries for Java (from https://github.com/google/guava.git) +- Guava: Google Core Libraries for Java (from https://github.com/google/guava.git) +- HPPC Collections (from http://labs.carrotsearch.com) +- Hibernate Validator Engine (from ) +- J2ObjC Annotations (from https://github.com/google/j2objc/) +- JBoss Logging 3 (from http://www.jboss.org) +- JCIP Annotations under Apache License (from http://stephenc.github.com/jcip-annotations) +- JMES Path Query library (from https://aws.amazon.com/sdkforjava) +- JSON Small and Fast Parser (from http://www.minidev.net/) +- JSON Web Token support for the JVM (from https://github.com/jwtk/jjwt.git) +- 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) +- Jackson (from http://jackson.codehaus.org) +- Jackson dataformat: CBOR (from http://github.com/FasterXML/jackson-dataformats-binary) +- Jackson datatype: JSR310 (from http://wiki.fasterxml.com/JacksonModuleJSR310) +- Jackson-annotations (from http://github.com/FasterXML/jackson) +- Jackson-core (from https://github.com/FasterXML/jackson-core) +- Jackson-dataformat-Smile (from http://github.com/FasterXML/jackson-dataformat-smile) +- Jackson-dataformat-YAML (from https://github.com/FasterXML/jackson) +- Jackson-datatype-jdk8 (from ) +- Jackson-module-JAXB-annotations (from http://wiki.fasterxml.com/JacksonJAXBAnnotations) +- Jackson-module-parameter-names (from ) +- Java Libraries for Amazon Simple WorkFlow (from https://aws.amazon.com/sdkforjava) +- Java Servlet API (from http://servlet-spec.java.net) +- Javassist (from http://www.javassist.org/) +- Joda-Time (from http://www.joda.org/joda-time/) +- Json Path (from https://github.com/jayway/JsonPath) +- Lucene Common Analyzers (from ) +- Lucene Core (from ) +- Lucene Grouping (from ) +- Lucene Highlighter (from ) +- Lucene Join (from ) +- Lucene Memory (from ) +- Lucene Memory (from ) +- Lucene Miscellaneous (from ) +- Lucene Queries (from ) +- Lucene QueryParsers (from ) +- Lucene Sandbox (from ) +- Lucene Spatial (from ) +- Lucene Spatial 3D (from ) +- Lucene Spatial Extras (from ) +- Lucene Suggest (from ) +- MapStruct Core (from ) +- Microsoft Application Insights Logback Appender (from https://github.com/Microsoft/ApplicationInsights-Java) +- Mockito (from http://mockito.org) +- Mockito (from http://mockito.org) +- Mockito (from http://www.mockito.org) +- Mojo's Maven plugin for Cobertura (from http://mojo.codehaus.org/cobertura-maven-plugin/) +- Netty/Buffer (from http://netty.io/) +- Netty/Codec (from ) +- Netty/Codec/HTTP (from ) +- Netty/Common (from ) +- Netty/Handler (from ) +- Netty/Resolver (from ) +- Netty/Transport (from http://netty.io/) +- Nimbus JOSE+JWT (from https://bitbucket.org/connect2id/nimbus-jose-jwt) +- Nimbus LangTag (from https://bitbucket.org/connect2id/nimbus-language-tags) +- 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 ) +- Objenesis (from http://objenesis.org) +- OpenCensus (from https://github.com/census-instrumentation/opencensus-java) +- OpenCensus (from https://github.com/census-instrumentation/opencensus-java) +- PowerMock (from http://www.powermock.org) +- SnakeYAML (from http://www.snakeyaml.org) +- Spatial4J (from http://www.locationtech.org/projects/locationtech.spatial4j) +- 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 Actuator (from http://projects.spring.io/spring-boot/) +- Spring Boot Actuator AutoConfigure (from https://projects.spring.io/spring-boot/#/spring-boot-parent/spring-boot-actuator-autoconfigure) +- Spring Boot Actuator Starter (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 Dependencies (from http://projects.spring.io/spring-boot/) +- Spring Boot Jersey Starter (from http://projects.spring.io/spring-boot/) +- Spring Boot Jersey Starter (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 http://projects.spring.io/spring-boot/) +- Spring Boot Security 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 Test Starter (from http://projects.spring.io/spring-boot/) +- Spring Boot Tomcat Starter (from http://projects.spring.io/spring-boot/) +- Spring Boot Validation 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 Boot Web Starter (from http://projects.spring.io/spring-boot/) +- 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 Data Core (from ) +- Spring Expression Language (SpEL) (from https://github.com/spring-projects/spring-framework) +- Spring Plugin - Core (from ) +- Spring Plugin - Metadata Extension (from ) +- 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 Web (from https://github.com/spring-projects/spring-framework) +- Spring Web MVC (from https://github.com/spring-projects/spring-framework) +- T-Digest (from https://github.com/tdunning/t-digest) +- aggs-matrix-stats (from https://github.com/elastic/elasticsearch) +- cli (from https://github.com/elastic/elasticsearch) +- com.google.api.grpc:proto-google-iam-v1 (from https://github.com/googleapis/googleapis) +- commons-collections (from ) +- compiler (from http://github.com/spullara/mustache.java) +- elasticsearch-core (from https://github.com/elastic/elasticsearch) +- error-prone annotations (from ) +- io.grpc:grpc-context (from https://github.com/grpc/grpc-java) +- ion-java (from https://github.com/amznlabs/ion-java/) +- jackson-databind (from http://github.com/FasterXML/jackson) +- jackson-databind (from http://github.com/FasterXML/jackson) +- javax.inject (from http://code.google.com/p/atinject/) +- javax.ws.rs-api (from http://jax-rs-spec.java.net) +- jersey-container-servlet (from git://java.net/jersey~code/project/jersey-container-servlet) +- jersey-container-servlet-core (from git://java.net/jersey~code/project/jersey-container-servlet-core) +- jersey-core-client (from git://java.net/jersey~code/jersey-client) +- jersey-core-common (from ) +- jersey-core-server (from git://java.net/jersey~code/jersey-server) +- jersey-ext-bean-validation (from ) +- jersey-ext-entity-filtering (from ) +- jersey-inject-hk2 (from ) +- jersey-media-jaxb (from ) +- jersey-media-json-jackson (from git://java.net/jersey~code/project/jersey-media-json-jackson) +- jersey-spring4 (from ) +- jose4j (from https://bitbucket.org/b_c/jose4j/) +- lang-mustache (from https://github.com/elastic/elasticsearch) +- lettuce (from http://github.com/mp911de/lettuce/wiki) +- micrometer-core (from https://github.com/micrometer-metrics/micrometer) +- org.xmlunit:xmlunit-core (from http://www.xmlunit.org/) +- parent-join (from https://github.com/elastic/elasticsearch) +- powermock-api-mockito (from ) +- powermock-api-mockito-common (from ) +- powermock-api-support (from ) +- powermock-core (from http://www.powermock.org) +- powermock-module-junit4 (from http://www.powermock.org) +- powermock-module-junit4-common (from ) +- powermock-reflect (from ) +- rank-eval (from https://github.com/elastic/elasticsearch) +- rest (from https://github.com/elastic/elasticsearch) +- rest-high-level (from https://github.com/elastic/elasticsearch) +- rxjava (from https://github.com/ReactiveX/RxJava) +- secure-sm (from https://github.com/elastic/elasticsearch) +- 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-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-test (from http://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) +- springfox-spring-web (from https://github.com/springfox/springfox) +- springfox-swagger-common (from https://github.com/springfox/springfox) +- springfox-swagger-ui (from https://github.com/springfox/springfox) +- springfox-swagger2 (from https://github.com/springfox/springfox) +- swagger-annotations (from ) +- swagger-jaxrs (from ) +- swagger-models (from ) +- tomcat-annotations-api (from http://tomcat.apache.org/) +- tomcat-embed-core (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 http://tomcat.apache.org/) +- x-content (from https://github.com/elastic/elasticsearch) + +======================================================================== +BSD-2-Clause +======================================================================== +The following software have components provided under the terms of this license: + +- Hamcrest Core (from http://hamcrest.org/) +- Lucene Common Analyzers (from ) +- jersey-ext-bean-validation (from ) +- jersey-spring4 (from ) + +======================================================================== +BSD-3-Clause +======================================================================== +The following software have components provided under the terms of this license: + +- ASM Core (from ) +- ASM library repackaged as OSGi bundle (from ) +- Apache Commons Codec (from http://commons.apache.org/proper/commons-codec/) +- Apache Commons Codec (from http://commons.apache.org/proper/commons-codec/) +- Byte Buddy (without dependencies) (from ) +- Hamcrest library (from ) +- Lucene Common Analyzers (from ) +- Lucene Core (from ) +- Lucene Suggest (from ) +- Microsoft Application Insights Logback Appender (from https://github.com/Microsoft/ApplicationInsights-Java) +- Mockito (from http://www.mockito.org) +- Netty/Codec/HTTP (from ) +- Reflections (from http://github.com/ronmamo/reflections) +- SnakeYAML (from http://www.snakeyaml.org) +- Spring Core (from https://github.com/spring-projects/spring-framework) +- jersey-container-servlet (from git://java.net/jersey~code/project/jersey-container-servlet) +- jersey-container-servlet-core (from git://java.net/jersey~code/project/jersey-container-servlet-core) +- jersey-core-client (from git://java.net/jersey~code/jersey-client) +- jersey-core-server (from git://java.net/jersey~code/jersey-server) +- jersey-ext-entity-filtering (from ) +- jersey-inject-hk2 (from ) +- jersey-media-jaxb (from ) + +======================================================================== +CC-BY-3.0 +======================================================================== +The following software have components provided under the terms of this license: + +- FindBugs-jsr305 (from http://findbugs.sourceforge.net/) + +======================================================================== +CC-BY-4.0 +======================================================================== +The following software have components provided under the terms of this license: + +- Microsoft Application Insights Logback Appender (from https://github.com/Microsoft/ApplicationInsights-Java) + +======================================================================== +CDDL-1.0 +======================================================================== +The following software have components provided under the terms of this license: + +- ASM library repackaged as OSGi bundle (from ) +- Class Model for Hk2 (from ) +- HK2 API module (from git://java.net/hk2~git/hk2-api) +- HK2 Implementation Utilities (from ) +- HK2 Spring Bridge (from ) +- HK2 config types (from ) +- HK2 configuration module (from ) +- HK2 core module (from ) +- HK2 module of HK2 itself (from ) +- JavaBeans Activation Framework API jar (from ) +- JavaBeans(TM) Activation Framework (from http://java.sun.com/javase/technologies/desktop/javabeans/jaf/index.jsp) +- Run Level Service (from ) +- ServiceLocator Default Implementation (from git://java.net/hk2~git/hk2-locator) +- aopalliance-repackaged (from ) +- javax.annotation-api (from http://jcp.org/en/jsr/detail?id=250) +- javax.ws.rs-api (from http://jax-rs-spec.java.net) +- jersey-container-servlet (from git://java.net/jersey~code/project/jersey-container-servlet) +- jersey-container-servlet-core (from git://java.net/jersey~code/project/jersey-container-servlet-core) +- jersey-core-client (from git://java.net/jersey~code/jersey-client) +- jersey-core-common (from ) +- jersey-core-server (from git://java.net/jersey~code/jersey-server) +- jersey-ext-entity-filtering (from ) +- jersey-inject-hk2 (from ) +- jersey-media-jaxb (from ) +- jersey-media-json-jackson (from git://java.net/jersey~code/project/jersey-media-json-jackson) + +======================================================================== +CDDL-1.1 +======================================================================== +The following software have components provided under the terms of this license: + +- Java Architecture For XML Binding (from ) +- Java Servlet API (from http://servlet-spec.java.net) +- JavaMail API (from ) +- OSGi resource locator (from ) +- jersey-ext-bean-validation (from ) +- jersey-spring4 (from ) +- tomcat-embed-core (from http://tomcat.apache.org/) +- tomcat-embed-core (from http://tomcat.apache.org/) + +======================================================================== +CPL-1.0 +======================================================================== +The following software have components provided under the terms of this license: + +- System Rules (from http://stefanbirkner.github.io/system-rules/) + +======================================================================== +EPL-1.0 +======================================================================== +The following software have components provided under the terms of this license: + +- JUnit (from http://junit.org) +- Logback Classic Module (from ) +- Logback Core Module (from ) +- Microsoft Application Insights Logback Appender (from https://github.com/Microsoft/ApplicationInsights-Java) +- SnakeYAML (from http://www.snakeyaml.org) +- jts-core (from ) +- jts-io-common (from ) + +======================================================================== +GPL-2.0-only +======================================================================== +The following software have components provided under the terms of this license: + +- ASM library repackaged as OSGi bundle (from ) +- Class Model for Hk2 (from ) +- Commons Lang (from http://commons.apache.org/lang/) +- HK2 API module (from git://java.net/hk2~git/hk2-api) +- HK2 Implementation Utilities (from ) +- HK2 Spring Bridge (from ) +- HK2 config types (from ) +- HK2 configuration module (from ) +- HK2 core module (from ) +- HK2 module of HK2 itself (from ) +- Java Architecture For XML Binding (from ) +- Java Servlet API (from http://servlet-spec.java.net) +- JavaBeans Activation Framework API jar (from ) +- JavaMail API (from ) +- Mojo's Maven plugin for Cobertura (from http://mojo.codehaus.org/cobertura-maven-plugin/) +- OSGi resource locator (from ) +- Run Level Service (from ) +- ServiceLocator Default Implementation (from git://java.net/hk2~git/hk2-locator) +- aopalliance-repackaged (from ) +- javax.annotation-api (from http://jcp.org/en/jsr/detail?id=250) +- javax.ws.rs-api (from http://jax-rs-spec.java.net) +- jersey-container-servlet (from git://java.net/jersey~code/project/jersey-container-servlet) +- jersey-container-servlet-core (from git://java.net/jersey~code/project/jersey-container-servlet-core) +- jersey-core-client (from git://java.net/jersey~code/jersey-client) +- jersey-core-common (from ) +- jersey-core-server (from git://java.net/jersey~code/jersey-server) +- jersey-ext-bean-validation (from ) +- jersey-ext-entity-filtering (from ) +- jersey-inject-hk2 (from ) +- jersey-media-jaxb (from ) +- jersey-media-json-jackson (from git://java.net/jersey~code/project/jersey-media-json-jackson) +- jersey-spring4 (from ) +- tomcat-embed-core (from http://tomcat.apache.org/) +- tomcat-embed-core (from http://tomcat.apache.org/) + +======================================================================== +GPL-2.0-or-later +======================================================================== +The following software have components provided under the terms of this license: + +- SnakeYAML (from http://www.snakeyaml.org) + +======================================================================== +GPL-2.0-with-classpath-exception +======================================================================== +The following software have components provided under the terms of this license: + +- HK2 Implementation Utilities (from ) +- Java Architecture For XML Binding (from ) +- Java Servlet API (from http://servlet-spec.java.net) +- JavaBeans Activation Framework API jar (from ) +- JavaMail API (from ) +- OSGi resource locator (from ) +- ServiceLocator Default Implementation (from git://java.net/hk2~git/hk2-locator) +- aopalliance-repackaged (from ) +- javax.annotation-api (from http://jcp.org/en/jsr/detail?id=250) +- javax.ws.rs-api (from http://jax-rs-spec.java.net) +- jersey-container-servlet (from git://java.net/jersey~code/project/jersey-container-servlet) +- jersey-container-servlet-core (from git://java.net/jersey~code/project/jersey-container-servlet-core) +- jersey-core-client (from git://java.net/jersey~code/jersey-client) +- jersey-core-common (from ) +- jersey-core-server (from git://java.net/jersey~code/jersey-server) +- jersey-ext-bean-validation (from ) +- jersey-ext-entity-filtering (from ) +- jersey-inject-hk2 (from ) +- jersey-media-jaxb (from ) +- jersey-media-json-jackson (from git://java.net/jersey~code/project/jersey-media-json-jackson) +- jersey-spring4 (from ) +- tomcat-embed-core (from http://tomcat.apache.org/) +- tomcat-embed-core (from http://tomcat.apache.org/) + +======================================================================== +GPL-3.0-only +======================================================================== +The following software have components provided under the terms of this license: + +- OSGi resource locator (from ) +- Project Lombok (from https://projectlombok.org) +- SnakeYAML (from http://www.snakeyaml.org) +- javax.ws.rs-api (from http://jax-rs-spec.java.net) + +======================================================================== +LGPL-2.1-only +======================================================================== +The following software have components provided under the terms of this license: + +- Commons Lang (from http://commons.apache.org/lang/) +- Elastic JNA Distribution (from https://github.com/java-native-access/jna) +- Javassist (from http://www.javassist.org/) +- Logback Classic Module (from ) +- Logback Core Module (from ) +- Microsoft Application Insights Logback Appender (from https://github.com/Microsoft/ApplicationInsights-Java) + +======================================================================== +LGPL-2.1-or-later +======================================================================== +The following software have components provided under the terms of this license: + +- SnakeYAML (from http://www.snakeyaml.org) + +======================================================================== +LGPL-3.0-only +======================================================================== +The following software have components provided under the terms of this license: + +- Apache Log4j API (from ) + +======================================================================== +MIT +======================================================================== +The following software have components provided under the terms of this license: + +- Bouncy Castle Provider (from http://www.bouncycastle.org/java.html) +- Checker Qual (from https://checkerframework.org) +- Elasticsearch: 5.0.0-alpha5 (from https://github.com/elastic/elasticsearch) +- JOpt Simple (from http://pholser.github.io/jopt-simple) +- JUL to SLF4J bridge (from http://www.slf4j.org) +- Java JWT (from http://www.jwt.io) +- Lucene Core (from ) +- Lucene Sandbox (from ) +- Microsoft Application Insights Logback Appender (from https://github.com/Microsoft/ApplicationInsights-Java) +- Mockito (from http://mockito.org) +- Mockito (from http://www.mockito.org) +- Mockito (from http://mockito.org) +- Netty/Codec/HTTP (from ) +- Netty/Common (from ) +- Project Lombok (from https://projectlombok.org) +- SLF4J API Module (from http://www.slf4j.org) +- msal4j (from https://github.com/AzureAD/microsoft-authentication-library-for-java) +- powermock-api-mockito (from ) +- spring-security-core (from http://spring.io/spring-security) + +======================================================================== +MPL-1.1 +======================================================================== +The following software have components provided under the terms of this license: + +- Javassist (from http://www.javassist.org/) + +======================================================================== +MPL-2.0 +======================================================================== +The following software have components provided under the terms of this license: + +- Javassist (from http://www.javassist.org/) + +======================================================================== +Public-Domain +======================================================================== +The following software have components provided under the terms of this license: + +- HdrHistogram (from http://hdrhistogram.github.io/HdrHistogram/) +- LatencyUtils (from http://latencyutils.github.io/LatencyUtils/) +- jersey-core-common (from ) +- jersey-core-server (from git://java.net/jersey~code/jersey-server) +- jts-core (from ) + +======================================================================== +SPL-1.0 +======================================================================== +The following software have components provided under the terms of this license: + +- Checker Qual (from https://checkerframework.org) + +======================================================================== +WTFPL +======================================================================== +The following software have components provided under the terms of this license: + +- Reflections (from http://github.com/ronmamo/reflections) + +======================================================================== +public-domain +======================================================================== +The following software have components provided under the terms of this license: + +- AWS SDK for Java - Models (from https://aws.amazon.com/sdkforjava) +- 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) +- Guava: Google Core Libraries for Java (from https://github.com/google/guava.git) +- Guava: Google Core Libraries for Java (from https://github.com/google/guava.git) +- HdrHistogram (from http://hdrhistogram.github.io/HdrHistogram/) +- Joda-Time (from http://www.joda.org/joda-time/) +- LatencyUtils (from http://latencyutils.github.io/LatencyUtils/) +- Project Lombok (from https://projectlombok.org) +- Spring Security JWT Library (from http://github.com/spring-projects/spring-security-oauth) +- Spring Web (from https://github.com/spring-projects/spring-framework) + +======================================================================== +unknown +======================================================================== +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) +- System Rules (from http://stefanbirkner.github.io/system-rules/) +- jersey-container-servlet (from git://java.net/jersey~code/project/jersey-container-servlet) +- jersey-container-servlet-core (from git://java.net/jersey~code/project/jersey-container-servlet-core) +- jersey-core-client (from git://java.net/jersey~code/jersey-client) +- jersey-ext-bean-validation (from ) +- jersey-ext-entity-filtering (from ) +- jersey-inject-hk2 (from ) +- jersey-media-jaxb (from ) +- jersey-spring4 (from ) +- jts-core (from ) +- jts-io-common (from ) + + diff --git a/docs/tutorial/IndexerService.md b/docs/tutorial/IndexerService.md new file mode 100644 index 0000000000000000000000000000000000000000..ca1a75afd20979700121b86086387f2e1a155c08 --- /dev/null +++ b/docs/tutorial/IndexerService.md @@ -0,0 +1,252 @@ +## Indexer service + +### Table of contents <a name="TOC"></a> +- [Indexer service](#indexer-service) + - [Table of contents <a name="TOC"></a>](#table-of-contents) +- [Get indexing status <a name="get-indexing-status"></a>](#get-indexing-status) +- [Reindex <a name="reindex"></a>](#reindex) +- [Copy Index <a name="copy-index"></a>](#copy-index) +- [Get task status <a name="get-task-status"></a>](#get-task-status) + + +##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> + +* Required roles + + Indexer service requires that users (and service accounts) have dedicated roles in order to use it. The following roles should be created and assigned using the entitlements service: + + __users.OSDU.viewers__ + + __users.OSDU.editors__ + + __users.OSDU.admin__ + +* Required headers + + The Data Ecosystem stores data in different data partitions depending on the different accounts in the OSDU system. + + A user may belong to many partitions in OSDU e.g. a OSDU user may belong to both the OSDU partition and a customer's partition. When a user logs into the OSDU portal they choose which data partition they currently want to be active. + + When using the Indexer APIs you need to specify which data partition they currently have active and send it in the OSDU-Data-Partition-Id header. e.g. + ``` + OSDU-Data-Partition-Id: OSDU + ``` + The correct values can be obtained from CFS services. + + We use this value to work out which partition to use. There is also a special data partition known as common + ``` + OSDU-Data-Partition-Id: common + ``` + This has all public data in the Data Ecosystem. Users always have access to this as well as their current active data partition. + + You should also send a correlation id as a header so that a single request can be tracked throughout all the services it passes through. This can be a GUID on the header with a key + ``` + OSDU-Correlation-Id: 1e0fef08-22fd-49b1-a5cc-dffa21bc0b70 + ``` + If you are the service initiating the request you should generate the id, otherwise you should just forward it on in the request. + +[Back to table of contents](#TOC) + +## Get indexing status <a name="get-indexing-status"></a> + +Indexer service adds internal meta data to each record which registers the status of the indexing. The meta data includes the status and the last indexing date and time. This additional meta block helps to see the details of indexing. The format of the index meta block is as follows: + +``` +"index": { + "trace": [ + String, + String + ], + "statusCode": Integer, + "lastUpdateTime": Datetime +} +``` +Example: +``` +{ + "results": [ + { + "index": { + "trace": [ + "datetime parsing error: unknown format for attribute: endDate | value: 9000-01-01T00:00:00.0000000", + "datetime parsing error: unknown format for attribute: startDate | value: 1990-01-01T00:00:00.0000000" + ], + "statusCode": 400, + "lastUpdateTime": "2018-11-16T01:44:08.687Z" + } + } + ], + "totalCount": 31895 +} +``` + +Details of the index block: +1) trace: This field collects all the issues related to the indexing and concatinates using '|'. This is a String field. +2) statusCode: This field determines the category of the error. This is integer field. It can have the following values: + * 200 - All OK + * 404 - Schema is missing in Storage + * 400 - Some fields were not properly mapped with the schema defined +3) lastUpdateTime: This field captures the last time the record was updated by by the indexer service. This is datetime field so you can do range queries on this field. + +You can query the index status using the following example query: + +``` +curl --request POST \ + --url /api/search/v2/query \ + --header 'Authorization: Token' \ + --header 'Content-Type: application/json' \ + --header 'OSDU-Data-Partition-Id: Data partition id' \ + --data '{"kind": "*:*:*:*","query": "index.statusCode:404","returnedFields": ["index"]}' + +NOTE: By default, the API response excludes the 'index' attribute block. The user must specify 'index' as the 'returnedFields" in order to see it in the response. +``` +The above query will return all records which had problems due to fields mismatch. + +Please refer to the [Search service](searchservice#query) documentation for examples on different kinds of search queries. + +[Back to table of contents](#TOC) + +## Reindex <a name="reindex"></a> + +Reindex API allows users to re-index a `kind` without re-ingesting the records via storage API. Reindexing a kind is an asynchronous operation and when a user calls this API, it will respond with HTTP 200 if it can launch the re-indexing or appropriate error code if it cannot. The current status of the indexing can be tracked by calling search API and making query with this particular kind. Please be advised, it may take few seconds to few hours to finish the re-indexing as multiple factors contribute to latency, such as number of records in the kind, current load at the indexer service etc. + +__Note__: If a kind has been previously indexed with particular schema and if you wish to apply the schema changes during re-indexing, previous kind index has to be deleted via Index Delete API. In absence of this clean-up, reindex API will use the same schema and overwrite records with the same ids. + +``` +POST /api/indexer/v2/reindex +{ + "kind": "common:welldb:wellbore:1.0.0" +} +``` + +<details><summary>**Curl**</summary> + +``` +curl --request POST \ + --url '/api/indexer/v2/reindex' \ + --header 'accept: application/json' \ + --header 'authorization: Bearer <JWT>' \ + --header 'content-type: application/json' \ + --header 'OSDU-Data-Partition-Id: common' \ + --data '{ + "kind": "common:welldb:wellbore:1.0.0" +}' +``` +</details> + +[Back to table of contents](#TOC) + +## Copy Index <a name="copy-index"></a> + +Copy Index API can be used copy `kind` index from `common` to a private `data partition` search backend. To call it, kind from `common` partition should be provided as path parameter and private partition-id should be specified in OSDU-Data-Partition-Id header. + +__Note__: Copy Index API is intended for __only__ copying `kind` index from `common` cluster to private `partition` cluster, no other combination of data partitions are honored at this time. + +``` +POST /api/indexer/v2/copyIndex/copy/{kind} +OSDU-Data-Partition-Id:OSDU +``` + +<details><summary>**Curl**</summary> + +``` +curl --request POST \ + --url '/api/indexer/v2/copyIndex/copy/common:welldb:wellbore:1.0.0' \ + --header 'accept: application/json' \ + --header 'authorization: Bearer <JWT>' \ + --header 'content-type: application/json' \ + --header 'OSDU-Data-Partition-Id: OSDU' +``` +</details> + +The successful response from the above request will be a `task-id`, this can be later used to track the status of the task via task status API(#get-task-status). + +``` +{ + "task": "CrOX4STSQF6kgtSRdERhbw:92863567" +} +``` + +[Back to table of contents](#TOC) + +## Get task status <a name="get-task-status"></a> + +Status of ongoing or completed index copy request for given `taskId` can retrieved via GET task status api. + +``` +GET /api/indexer/v2/copyIndex/taskStatus/{taskId} +``` + +<details><summary>**Curl**</summary> + +``` +curl --request GET \ + --url '/api/indexer/v2/copyIndex/taskStatus/[taskid]]' \ + --header 'accept: application/json' \ + --header 'authorization: Bearer <JWT>' \ + --header 'content-type: application/json' \ + --header 'OSDU-Data-Partition-Id: OSDU' +``` +</details> + +API will respond with status of task. + +``` +{ + "completed": true, + "task": { + "node": "[nodeid]", + "id": 113159669, + "type": "transport", + "action": "indices:data/write/reindex", + "status": { + "total": 1530, + "updated": 0, + "created": 1530, + "deleted": 0, + "batches": 1, + "version_conflicts": 0, + "noops": 0, + "retries": { + "bulk": 0, + "search": 0 + }, + "throttled_millis": 0, + "requests_per_second": -1, + "throttled_until_millis": 0 + }, + "description": "reindex from [scheme=https host=host-id port=9243 query={\n \"match_all\" : {\n \"boost\" : 1.0\n }\n}][common:welldb:wellbore:1.0.0] to [common:welldb:wellbore:1.0.0]", + "start_time_in_millis": 1539735233086, + "running_time_in_nanos": 1094744315, + "cancellable": true, + "headers": {} + }, + "response": { + "took": 1084, + "timed_out": false, + "total": 1530, + "updated": 0, + "created": 1530, + "deleted": 0, + "batches": 1, + "version_conflicts": 0, + "noops": 0, + "retries": { + "bulk": 0, + "search": 0 + }, + "throttled_millis": 0, + "requests_per_second": -1, + "throttled_until_millis": 0, + "failures": [] + } +} +``` + +[Back to table of contents](#TOC) + diff --git a/indexer-core/pom.xml b/indexer-core/pom.xml index 770fa7384d9143bbaead1b577e903505813fcf99..2aefa834bad5cffdb6b39da78b359f4d8fd03cfb 100644 --- a/indexer-core/pom.xml +++ b/indexer-core/pom.xml @@ -205,6 +205,24 @@ </dependency> </dependencies> + + <repositories> + <repository> + <id>${gitlab-server}</id> + <url>https://community.opengroup.org/api/v4/groups/17/-/packages/maven</url> + </repository> + </repositories> + + <distributionManagement> + <repository> + <id>${gitlab-server}</id> + <url>https://community.opengroup.org/api/v4/projects/25/packages/maven</url> + </repository> + <snapshotRepository> + <id>${gitlab-server}</id> + <url>https://community.opengroup.org/api/v4/projects/25/packages/maven</url> + </snapshotRepository> + </distributionManagement> <build> <defaultGoal>test</defaultGoal> <plugins> diff --git a/indexer-core/src/main/java/org/opengroup/osdu/indexer/util/ElasticClientHandler.java b/indexer-core/src/main/java/org/opengroup/osdu/indexer/util/ElasticClientHandler.java index 41738b1e3a163617bcc2979ba3e042cb2db66d60..3ec68d5c3f4e056ed6939ac73268973f78f40905 100644 --- a/indexer-core/src/main/java/org/opengroup/osdu/indexer/util/ElasticClientHandler.java +++ b/indexer-core/src/main/java/org/opengroup/osdu/indexer/util/ElasticClientHandler.java @@ -87,22 +87,22 @@ public class ElasticClientHandler { } public RestClientBuilder createClientBuilder(String host, String basicAuthenticationHeaderVal, int port, String protocolScheme, String tls) { - RestClientBuilder builder = RestClient.builder(new HttpHost(host, port, protocolScheme)); - builder.setRequestConfigCallback(requestConfigBuilder -> requestConfigBuilder.setConnectTimeout(REST_CLIENT_CONNECT_TIMEOUT) - .setSocketTimeout(REST_CLIENT_SOCKET_TIMEOUT)); - builder.setMaxRetryTimeoutMillis(REST_CLIENT_RETRY_TIMEOUT); - - Header[] defaultHeaders = new Header[]{ - new BasicHeader("client.transport.nodes_sampler_interval", "30s"), - new BasicHeader("client.transport.ping_timeout", "30s"), - new BasicHeader("client.transport.sniff", "false"), + RestClientBuilder builder = RestClient.builder(new HttpHost(host, port, protocolScheme)); + builder.setRequestConfigCallback(requestConfigBuilder -> requestConfigBuilder.setConnectTimeout(REST_CLIENT_CONNECT_TIMEOUT) + .setSocketTimeout(REST_CLIENT_SOCKET_TIMEOUT)); + builder.setMaxRetryTimeoutMillis(REST_CLIENT_RETRY_TIMEOUT); + + Header[] defaultHeaders = new Header[]{ + new BasicHeader("client.transport.nodes_sampler_interval", "30s"), + new BasicHeader("client.transport.ping_timeout", "30s"), + new BasicHeader("client.transport.sniff", "false"), new BasicHeader("request.headers.X-Found-Cluster", host), new BasicHeader("cluster.name", host), - new BasicHeader("xpack.security.transport.ssl.enabled", tls), - new BasicHeader("Authorization", basicAuthenticationHeaderVal), - }; + new BasicHeader("xpack.security.transport.ssl.enabled", tls), + new BasicHeader("Authorization", basicAuthenticationHeaderVal), + }; - builder.setDefaultHeaders(defaultHeaders); + builder.setDefaultHeaders(defaultHeaders); return builder; } -} \ No newline at end of file +} diff --git a/pom.xml b/pom.xml index ab061f485ab4bfba4d832157237970e7e900cdab..0ce2c8068920277504c25f3b6557316db50eeec2 100644 --- a/pom.xml +++ b/pom.xml @@ -31,85 +31,38 @@ <!-- <springfox-version>2.7.0</springfox-version>--> </properties> + <licenses> + <license> + <name>Apache License, Version 2.0</name> + <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url> + <distribution>repo</distribution> + </license> + </licenses> + <repositories> <repository> - <id>os-core</id> - <url>https://pkgs.dev.azure.com/slb-des-ext-collaboration/_packaging/os-core/maven/v1</url> - <releases> - <enabled>true</enabled> - </releases> - <snapshots> - <enabled>true</enabled> - </snapshots> + <id>${gitlab-server}</id> + <url>https://community.opengroup.org/api/v4/groups/17/-/packages/maven</url> </repository> </repositories> <distributionManagement> <repository> - <id>os-core</id> - <url>https://pkgs.dev.azure.com/slb-des-ext-collaboration/_packaging/os-core/maven/v1</url> + <id>${gitlab-server}</id> + <url>https://community.opengroup.org/api/v4/projects/25/packages/maven</url> </repository> + <snapshotRepository> + <id>${gitlab-server}</id> + <url>https://community.opengroup.org/api/v4/projects/25/packages/maven</url> + </snapshotRepository> </distributionManagement> - <profiles> - <profile> - <id>indexer-core</id> - <activation> - <!-- this profile is active by default --> - <activeByDefault>true</activeByDefault> - </activation> - <modules> - <module>indexer-core</module> - </modules> - </profile> - <profile> - <id>indexer-aws</id> - <activation> - <property> - <name>provider</name> - <value>indexer-aws</value> - </property> - </activation> - <modules> - <module>provider/indexer-aws</module> - </modules> - </profile> - <profile> - <id>indexer-azure</id> - <activation> - <property> - <name>provider</name> - <value>indexer-azure</value> - </property> - </activation> - <modules> - <module>provider/indexer-azure</module> - </modules> - </profile> - <profile> - <id>indexer-gcp</id> - <activation> - <property> - <name>provider</name> - <value>indexer-gcp</value> - </property> - </activation> - <modules> - <module>provider/indexer-gcp</module> - </modules> - </profile> - <profile> - <id>indexer-ibm</id> - <activation> - <property> - <name>provider</name> - <value>indexer-ibm</value> - </property> - </activation> - <modules> - <module>provider/indexer-ibm</module> - </modules> - </profile> - </profiles> + <modules> + <module>indexer-core</module> + <module>provider/indexer-aws</module> + <module>provider/indexer-azure</module> + <module>provider/indexer-gcp</module> + <module>provider/indexer-ibm</module> + </modules> </project> diff --git a/provider/indexer-aws/maven/settings.xml b/provider/indexer-aws/maven/settings.xml index 0ca9fe8103a2386f2ff0479c788306e1312faa3d..adba9a7602b0887236967efc41b49ccad08a7ca1 100644 --- a/provider/indexer-aws/maven/settings.xml +++ b/provider/indexer-aws/maven/settings.xml @@ -11,6 +11,6 @@ <!-- The generated token was last updated on 01/13/2020 and expires on or before 01/12/2021 --> <password>${azure.devops.token}</password> </server> - </servers> + </servers> </settings> diff --git a/provider/indexer-aws/pom.xml b/provider/indexer-aws/pom.xml index e322242bb0cf0c3a856de2215e0c5cd82d9b07b0..aa763a675d577afe9e3380606336703d0a09a48c 100644 --- a/provider/indexer-aws/pom.xml +++ b/provider/indexer-aws/pom.xml @@ -23,17 +23,17 @@ <relativePath>../..</relativePath> </parent> - <modelVersion>4.0.0</modelVersion> - <artifactId>indexer-aws</artifactId> - <description>Storage service on AWS</description> - <packaging>jar</packaging> + <modelVersion>4.0.0</modelVersion> + <artifactId>indexer-aws</artifactId> + <description>Storage service on AWS</description> + <packaging>jar</packaging> <version>${version.number}</version> - <properties> - <aws.version>1.11.637</aws.version> - <deployment.environment>dev</deployment.environment> - <version.number>1.0.4-SNAPSHOT</version.number> - </properties> + <properties> + <aws.version>1.11.637</aws.version> + <deployment.environment>dev</deployment.environment> + <version.number>1.0.4-SNAPSHOT</version.number> + </properties> <dependencies> <!-- Internal packages --> @@ -53,140 +53,147 @@ <version>0.0.10</version> </dependency> - <!-- AWS managed packages --> - <dependency> - <groupId>com.amazonaws</groupId> - <artifactId>aws-java-sdk-core</artifactId> - <version>1.11.651</version> - </dependency> - <dependency> - <groupId>com.amazonaws</groupId> - <artifactId>aws-java-sdk</artifactId> - <version>1.11.327</version> - </dependency> - - <!-- Third party Apache 2.0 license packages --> - <dependency> - <groupId>org.projectlombok</groupId> - <artifactId>lombok</artifactId> - </dependency> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-security</artifactId> - </dependency> - <dependency> - <groupId>org.springframework.security.oauth</groupId> - <artifactId>spring-security-oauth2</artifactId> - <version>2.3.6.RELEASE</version> - </dependency> - <dependency> - <groupId>org.springframework.security</groupId> - <artifactId>spring-security-jwt</artifactId> - <version>1.0.10.RELEASE</version> - </dependency> - <dependency> - <groupId>org.springframework.security</groupId> - <artifactId>spring-security-oauth2-client</artifactId> - </dependency> - <dependency> - <groupId>org.springframework.security</groupId> - <artifactId>spring-security-oauth2-jose</artifactId> - </dependency> - <dependency> - <groupId>org.apache.lucene</groupId> - <artifactId>lucene-core</artifactId> - <version>7.6.0</version> - <scope>compile</scope> - </dependency> - <dependency> - <groupId>javax.inject</groupId> - <artifactId>javax.inject</artifactId> - <version>1</version> - <scope>compile</scope> - </dependency> - <dependency> - <groupId>org.elasticsearch</groupId> - <artifactId>elasticsearch</artifactId> - <version>6.6.2</version> - </dependency> - <dependency> - <groupId>org.elasticsearch.client</groupId> - <artifactId>elasticsearch-rest-client</artifactId> - <version>6.6.2</version> - </dependency> - <dependency> - <groupId>org.elasticsearch.client</groupId> - <artifactId>elasticsearch-rest-high-level-client</artifactId> - <version>6.6.2</version> - </dependency> + <!-- AWS managed packages --> + <dependency> + <groupId>com.amazonaws</groupId> + <artifactId>aws-java-sdk-core</artifactId> + <version>1.11.651</version> + </dependency> + <dependency> + <groupId>com.amazonaws</groupId> + <artifactId>aws-java-sdk</artifactId> + <version>1.11.327</version> + </dependency> - <!-- Testing packages --> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.12</version> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.mockito</groupId> - <artifactId>mockito-all</artifactId> - <version>1.10.19</version> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.powermock</groupId> - <artifactId>powermock-module-junit4</artifactId> - <version>2.0.2</version> - </dependency> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-test</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.springframework.security</groupId> - <artifactId>spring-security-test</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.springframework.data</groupId> - <artifactId>spring-data-commons</artifactId> - <version>2.1.10.RELEASE</version> - <scope>compile</scope> - </dependency> - </dependencies> + <!-- Third party Apache 2.0 license packages --> + <dependency> + <groupId>org.projectlombok</groupId> + <artifactId>lombok</artifactId> + </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-security</artifactId> + </dependency> + <dependency> + <groupId>org.springframework.security.oauth</groupId> + <artifactId>spring-security-oauth2</artifactId> + <version>2.3.6.RELEASE</version> + </dependency> + <dependency> + <groupId>org.springframework.security</groupId> + <artifactId>spring-security-jwt</artifactId> + <version>1.0.10.RELEASE</version> + </dependency> + <dependency> + <groupId>org.springframework.security</groupId> + <artifactId>spring-security-oauth2-client</artifactId> + </dependency> + <dependency> + <groupId>org.springframework.security</groupId> + <artifactId>spring-security-oauth2-jose</artifactId> + </dependency> + <dependency> + <groupId>org.apache.lucene</groupId> + <artifactId>lucene-core</artifactId> + <version>7.6.0</version> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>javax.inject</groupId> + <artifactId>javax.inject</artifactId> + <version>1</version> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>org.elasticsearch</groupId> + <artifactId>elasticsearch</artifactId> + <version>6.6.2</version> + </dependency> + <dependency> + <groupId>org.elasticsearch.client</groupId> + <artifactId>elasticsearch-rest-client</artifactId> + <version>6.6.2</version> + </dependency> + <dependency> + <groupId>org.elasticsearch.client</groupId> + <artifactId>elasticsearch-rest-high-level-client</artifactId> + <version>6.6.2</version> + </dependency> - <build> - <plugins> - <plugin> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-maven-plugin</artifactId> - <configuration> - <classifier>spring-boot</classifier> - <mainClass>org.opengroup.osdu.indexer.aws.IndexerAwsApplication</mainClass> - </configuration> - <executions> - <execution> - <goals> - <goal>repackage</goal> - </goals> - </execution> - </executions> - </plugin> - </plugins> - </build> + <!-- Testing packages --> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>4.12</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.mockito</groupId> + <artifactId>mockito-all</artifactId> + <version>1.10.19</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.powermock</groupId> + <artifactId>powermock-module-junit4</artifactId> + <version>2.0.2</version> + </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-test</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.springframework.security</groupId> + <artifactId>spring-security-test</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.springframework.data</groupId> + <artifactId>spring-data-commons</artifactId> + <version>2.1.10.RELEASE</version> + <scope>compile</scope> + </dependency> + </dependencies> + <build> + <plugins> + <plugin> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-maven-plugin</artifactId> + <configuration> + <classifier>spring-boot</classifier> + <mainClass>org.opengroup.osdu.indexer.aws.IndexerAwsApplication</mainClass> + </configuration> + <executions> + <execution> + <goals> + <goal>repackage</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> + <repositories> + <repository> + <id>${gitlab-server}</id> + <url>https://community.opengroup.org/api/v4/groups/17/-/packages/maven</url> + </repository> - <repositories> - <repository> - <id>os-core</id> - <url>https://pkgs.dev.azure.com/slb-des-ext-collaboration/_packaging/os-core/maven/v1</url> - <releases> - <enabled>true</enabled> - </releases> - <snapshots> - <enabled>true</enabled> - </snapshots> - </repository> - </repositories> + <repository> + <id>jitpack.io</id> + <url>https://jitpack.io</url> + </repository> + </repositories> + <distributionManagement> + <repository> + <id>${gitlab-server}</id> + <url>https://community.opengroup.org/api/v4/projects/25/packages/maven</url> + </repository> + <snapshotRepository> + <id>${gitlab-server}</id> + <url>https://community.opengroup.org/api/v4/projects/25/packages/maven</url> + </snapshotRepository> + </distributionManagement> </project> diff --git a/provider/indexer-aws/src/main/resources/application.properties b/provider/indexer-aws/src/main/resources/application.properties index 1417cac2b324a22f893170b48f0a4e209429b760..54085fcb9b7f930dcecb71d0dffd89c118aa2a20 100644 --- a/provider/indexer-aws/src/main/resources/application.properties +++ b/provider/indexer-aws/src/main/resources/application.properties @@ -3,7 +3,6 @@ LOG_PREFIX=indexer server.servlet.contextPath=/api/indexer/v2/ logging.level.org.springframework.web=DEBUG server.port=${APPLICATION_PORT} - JAVA_HEAP_OPTS=-Xms${JAVA_HEAP_MEMORY}M -Xmx${JAVA_HEAP_MEMORY}M JAVA_GC_OPTS=-XX:+UseG1GC -XX:+UseStringDeduplication -XX:InitiatingHeapOccupancyPercent=45 @@ -59,8 +58,9 @@ aws.elasticache.cluster.schema.port=${CACHE_CLUSTER_SCHEMA_PORT} aws.elasticache.cluster.index.expiration=60 aws.elasticache.cluster.schema.expiration=60 + # Maximum size of cache value MAX_CACHE_VALUE_SIZE=1000 ## AWS Lambda configuration -aws.lambda.get-groups-function-name=${ENVIRONMENT}-os-entitlements-GroupsFunction \ No newline at end of file +aws.lambda.get-groups-function-name=${ENVIRONMENT}-os-entitlements-GroupsFunction diff --git a/provider/indexer-azure/pom.xml b/provider/indexer-azure/pom.xml index 014ca4df212eba1d0be1b11eed0febe1054b2692..0456e424ebd1100b09b2c95dde49b89d381705ef 100644 --- a/provider/indexer-azure/pom.xml +++ b/provider/indexer-azure/pom.xml @@ -177,6 +177,24 @@ </dependencies> + <repositories> + <repository> + <id>${gitlab-server}</id> + <url>https://community.opengroup.org/api/v4/groups/17/-/packages/maven</url> + </repository> + </repositories> + + <distributionManagement> + <repository> + <id>${gitlab-server}</id> + <url>https://community.opengroup.org/api/v4/projects/25/packages/maven</url> + </repository> + <snapshotRepository> + <id>${gitlab-server}</id> + <url>https://community.opengroup.org/api/v4/projects/25/packages/maven</url> + </snapshotRepository> + </distributionManagement> + <build> <plugins> <plugin> @@ -235,7 +253,7 @@ <useSystemClassLoader>false</useSystemClassLoader> <threadCount>1</threadCount> </configuration> - </plugin> + </plugin> </plugins> </build> diff --git a/provider/indexer-gcp/pom.xml b/provider/indexer-gcp/pom.xml index 26612ca6dd18a012034d1df813401d6a95ddbef5..3de30a3b6cbaa8e17862e56b5494cdbdd78057dc 100644 --- a/provider/indexer-gcp/pom.xml +++ b/provider/indexer-gcp/pom.xml @@ -18,16 +18,21 @@ <packaging>jar</packaging> <repositories> <repository> - <id>os-core</id> - <url>https://pkgs.dev.azure.com/slb-des-ext-collaboration/_packaging/os-core/maven/v1</url> - <releases> - <enabled>true</enabled> - </releases> - <snapshots> - <enabled>true</enabled> - </snapshots> + <id>${gitlab-server}</id> + <url>https://community.opengroup.org/api/v4/groups/17/-/packages/maven</url> </repository> </repositories> + + <distributionManagement> + <repository> + <id>${gitlab-server}</id> + <url>https://community.opengroup.org/api/v4/projects/25/packages/maven</url> + </repository> + <snapshotRepository> + <id>${gitlab-server}</id> + <url>https://community.opengroup.org/api/v4/projects/25/packages/maven</url> + </snapshotRepository> + </distributionManagement> <dependencies> <dependency> <groupId>org.opengroup.osdu.indexer</groupId> @@ -79,11 +84,6 @@ <artifactId>google-cloud-pubsub</artifactId> <version>1.60.0</version> </dependency> - <dependency> - <groupId>com.google.appengine.tools</groupId> - <artifactId>appengine-gcs-client</artifactId> - <version>0.8</version> - </dependency> <dependency> <groupId>org.elasticsearch</groupId> @@ -203,9 +203,9 @@ <useSystemClassLoader>false</useSystemClassLoader> <threadCount>1</threadCount> </configuration> - </plugin> + </plugin> </plugins> </build> -</project> \ No newline at end of file +</project> diff --git a/provider/indexer-ibm/pom.xml b/provider/indexer-ibm/pom.xml index 2a595d2bb15ce6e9931ba4d734d68d48b769065c..2e9262f315b415ea191ab3dc0be425703a740af3 100644 --- a/provider/indexer-ibm/pom.xml +++ b/provider/indexer-ibm/pom.xml @@ -47,19 +47,19 @@ <dependencies> - <!-- OSDU core service dependencies --> + <!-- OSDU core service dependencies --> <dependency> <groupId>org.opengroup.osdu.indexer</groupId> <artifactId>indexer-core</artifactId> <version>1.0.4-SNAPSHOT</version> </dependency> - + <dependency> <groupId>org.opengroup.osdu</groupId> <artifactId>os-core-lib-ibm</artifactId> <version>0.0.13-SNAPSHOT</version> </dependency> - + <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> @@ -154,6 +154,23 @@ </dependencies> + <repositories> + <repository> + <id>${gitlab-server}</id> + <url>https://community.opengroup.org/api/v4/groups/17/-/packages/maven</url> + </repository> + </repositories> + + <distributionManagement> + <repository> + <id>${gitlab-server}</id> + <url>https://community.opengroup.org/api/v4/projects/25/packages/maven</url> + </repository> + <snapshotRepository> + <id>${gitlab-server}</id> + <url>https://community.opengroup.org/api/v4/projects/25/packages/maven</url> + </snapshotRepository> + </distributionManagement> <build> <plugins> <plugin> diff --git a/testing/indexer-test-aws/pom.xml b/testing/indexer-test-aws/pom.xml index c31a29c6ba55e9d23032b0dd9fe9ecf6a22bab63..e10273d88673511a3b9acfa018672b33e4cff602 100644 --- a/testing/indexer-test-aws/pom.xml +++ b/testing/indexer-test-aws/pom.xml @@ -25,6 +25,24 @@ <version>0.0.2-SNAPSHOT</version> <packaging>jar</packaging> + <repositories> + <repository> + <id>${gitlab-server}</id> + <url>https://community.opengroup.org/api/v4/groups/17/-/packages/maven</url> + </repository> + </repositories> + + <distributionManagement> + <repository> + <id>${gitlab-server}</id> + <url>https://community.opengroup.org/api/v4/projects/25/packages/maven</url> + </repository> + <snapshotRepository> + <id>${gitlab-server}</id> + <url>https://community.opengroup.org/api/v4/projects/25/packages/maven</url> + </snapshotRepository> + </distributionManagement> + <properties> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.source>1.8</maven.compiler.source> @@ -140,4 +158,4 @@ </plugin> </plugins> </build> -</project> \ No newline at end of file +</project> diff --git a/testing/indexer-test-azure/pom.xml b/testing/indexer-test-azure/pom.xml index 1856f07f344cd75550325624815b87d71af92e52..4f05b04ad897eafa6c282c1ec7ef549de00450a2 100644 --- a/testing/indexer-test-azure/pom.xml +++ b/testing/indexer-test-azure/pom.xml @@ -35,16 +35,21 @@ <!-- indexer test core depends on core libraries in OSDU, so the repository needs to be configured --> <repositories> <repository> - <id>os-core</id> - <url>https://pkgs.dev.azure.com/slb-des-ext-collaboration/_packaging/os-core/maven/v1</url> - <releases> - <enabled>true</enabled> - </releases> - <snapshots> - <enabled>true</enabled> - </snapshots> + <id>${gitlab-server}</id> + <url>https://community.opengroup.org/api/v4/groups/17/-/packages/maven</url> </repository> </repositories> + + <distributionManagement> + <repository> + <id>${gitlab-server}</id> + <url>https://community.opengroup.org/api/v4/projects/25/packages/maven</url> + </repository> + <snapshotRepository> + <id>${gitlab-server}</id> + <url>https://community.opengroup.org/api/v4/projects/25/packages/maven</url> + </snapshotRepository> + </distributionManagement> <dependencies> <!-- Internal packages --> @@ -174,4 +179,4 @@ </dependency> </dependencies> -</project> \ No newline at end of file +</project> diff --git a/testing/indexer-test-core/pom.xml b/testing/indexer-test-core/pom.xml index f0dddebf7b91692aba1cb6ac03c98f17bb1b2afa..74ab140f67da111aaa517cc068567979a593b034 100644 --- a/testing/indexer-test-core/pom.xml +++ b/testing/indexer-test-core/pom.xml @@ -17,16 +17,21 @@ <!-- testing core depends on core libraries in OSDU, so the repository needs to be configured --> <repositories> <repository> - <id>os-core</id> - <url>https://pkgs.dev.azure.com/slb-des-ext-collaboration/_packaging/os-core/maven/v1</url> - <releases> - <enabled>true</enabled> - </releases> - <snapshots> - <enabled>true</enabled> - </snapshots> + <id>${gitlab-server}</id> + <url>https://community.opengroup.org/api/v4/groups/17/-/packages/maven</url> </repository> </repositories> + + <distributionManagement> + <repository> + <id>${gitlab-server}</id> + <url>https://community.opengroup.org/api/v4/projects/25/packages/maven</url> + </repository> + <snapshotRepository> + <id>${gitlab-server}</id> + <url>https://community.opengroup.org/api/v4/projects/25/packages/maven</url> + </snapshotRepository> + </distributionManagement> <dependencies> <dependency> <groupId>org.opengroup.osdu</groupId> diff --git a/testing/indexer-test-core/src/main/java/org/opengroup/osdu/util/Config.java b/testing/indexer-test-core/src/main/java/org/opengroup/osdu/util/Config.java index 037c18bcae8ca6dbdcfbc87b199fd04e7aed2d09..f015548d59648765ae22ea33a698299622a13b70 100644 --- a/testing/indexer-test-core/src/main/java/org/opengroup/osdu/util/Config.java +++ b/testing/indexer-test-core/src/main/java/org/opengroup/osdu/util/Config.java @@ -21,11 +21,11 @@ public class Config { private static final String DEFAULT_ENTITLEMENTS_DOMAIN = ""; - + public static int getPort() { return Integer.parseInt(getEnvironmentVariableOrDefaultValue("ELASTIC_PORT", String.valueOf(PORT))); } - + public static String getOtherRelevantDataCountries() { return getEnvironmentVariableOrDefaultValue("OTHER_RELEVANT_DATA_COUNTRIES", DEFAULT_OTHER_RELEVANT_DATA_COUNTRIES); } diff --git a/testing/indexer-test-core/src/main/java/org/opengroup/osdu/util/ElasticUtils.java b/testing/indexer-test-core/src/main/java/org/opengroup/osdu/util/ElasticUtils.java index c00cc5658871cbd609eb30d8ee0f90a45b097a76..c8e59b49252040d44f3ede30b81ebbafa97083df 100644 --- a/testing/indexer-test-core/src/main/java/org/opengroup/osdu/util/ElasticUtils.java +++ b/testing/indexer-test-core/src/main/java/org/opengroup/osdu/util/ElasticUtils.java @@ -275,24 +275,24 @@ public class ElasticUtils { } public RestClientBuilder createClientBuilder(String host, String usernameAndPassword, int port) { - RestClientBuilder builder = RestClient.builder(new HttpHost(host, port, "https")); - builder.setRequestConfigCallback(requestConfigBuilder -> requestConfigBuilder.setConnectTimeout(REST_CLIENT_CONNECT_TIMEOUT) - .setSocketTimeout(REST_CLIENT_SOCKET_TIMEOUT)); - builder.setMaxRetryTimeoutMillis(REST_CLIENT_RETRY_TIMEOUT); - - Header[] defaultHeaders = new Header[]{ - new BasicHeader("client.transport.nodes_sampler_interval", "30s"), - new BasicHeader("client.transport.ping_timeout", "30s"), - new BasicHeader("client.transport.sniff", "false"), - new BasicHeader("request.headers.X-Found-Cluster", Config.getElasticHost()), - new BasicHeader("cluster.name", Config.getElasticHost()), - new BasicHeader("xpack.security.transport.ssl.enabled", Boolean.toString(true)), + RestClientBuilder builder = RestClient.builder(new HttpHost(host, port, "https")); + builder.setRequestConfigCallback(requestConfigBuilder -> requestConfigBuilder.setConnectTimeout(REST_CLIENT_CONNECT_TIMEOUT) + .setSocketTimeout(REST_CLIENT_SOCKET_TIMEOUT)); + builder.setMaxRetryTimeoutMillis(REST_CLIENT_RETRY_TIMEOUT); + + Header[] defaultHeaders = new Header[]{ + new BasicHeader("client.transport.nodes_sampler_interval", "30s"), + new BasicHeader("client.transport.ping_timeout", "30s"), + new BasicHeader("client.transport.sniff", "false"), + new BasicHeader("request.headers.X-Found-Cluster", Config.getElasticHost()), + new BasicHeader("cluster.name", Config.getElasticHost()), + new BasicHeader("xpack.security.transport.ssl.enabled", Boolean.toString(true)), new BasicHeader("Authorization", String.format("Basic %s", Base64.getEncoder().encodeToString(usernameAndPassword.getBytes()))), - }; + }; - builder.setDefaultHeaders(defaultHeaders); + builder.setDefaultHeaders(defaultHeaders); return builder; } -} \ No newline at end of file +} diff --git a/testing/indexer-test-gcp/pom.xml b/testing/indexer-test-gcp/pom.xml index 12ac773f9139cf5d22c230264255652f74d75f4a..c4d9a3538cbb26c8cefac8c7a84dd5f8aca79dde 100644 --- a/testing/indexer-test-gcp/pom.xml +++ b/testing/indexer-test-gcp/pom.xml @@ -127,4 +127,22 @@ <version>27.1-jre</version> </dependency> </dependencies> -</project> \ No newline at end of file + + <repositories> + <repository> + <id>${gitlab-server}</id> + <url>https://community.opengroup.org/api/v4/groups/17/-/packages/maven</url> + </repository> + </repositories> + + <distributionManagement> + <repository> + <id>${gitlab-server}</id> + <url>https://community.opengroup.org/api/v4/projects/25/packages/maven</url> + </repository> + <snapshotRepository> + <id>${gitlab-server}</id> + <url>https://community.opengroup.org/api/v4/projects/25/packages/maven</url> + </snapshotRepository> + </distributionManagement> +</project> diff --git a/testing/indexer-test-ibm/pom.xml b/testing/indexer-test-ibm/pom.xml index 5c10f9b46d5e8b2afdbf8feb27f467698b52236a..4ff1ccc6d0bb0f83c9fbba32ef04c3191a328990 100644 --- a/testing/indexer-test-ibm/pom.xml +++ b/testing/indexer-test-ibm/pom.xml @@ -128,19 +128,24 @@ </dependency> </dependencies> - <repositories> + <repositories> <repository> - <id>os-core</id> - <url>https://pkgs.dev.azure.com/slb-des-ext-collaboration/_packaging/os-core/maven/v1</url> - <releases> - <enabled>true</enabled> - </releases> - <snapshots> - <enabled>true</enabled> - </snapshots> - </repository> + <id>${gitlab-server}</id> + <url>https://community.opengroup.org/api/v4/groups/17/-/packages/maven</url> + </repository> </repositories> + <distributionManagement> + <repository> + <id>${gitlab-server}</id> + <url>https://community.opengroup.org/api/v4/projects/25/packages/maven</url> + </repository> + <snapshotRepository> + <id>${gitlab-server}</id> + <url>https://community.opengroup.org/api/v4/projects/25/packages/maven</url> + </snapshotRepository> + </distributionManagement> + <build> <plugins> <plugin> diff --git a/testing/indexer-test-ibm/src/test/java/org/opengroup/osdu/util/ElasticUtilsIBM.java b/testing/indexer-test-ibm/src/test/java/org/opengroup/osdu/util/ElasticUtilsIBM.java index e030786ff42dba025d1adb0837786f5b911bd48f..7e97717da71a96bcbb0a64229bc7acf283618031 100644 --- a/testing/indexer-test-ibm/src/test/java/org/opengroup/osdu/util/ElasticUtilsIBM.java +++ b/testing/indexer-test-ibm/src/test/java/org/opengroup/osdu/util/ElasticUtilsIBM.java @@ -40,16 +40,15 @@ import lombok.extern.java.Log; */ @Log public class ElasticUtilsIBM extends ElasticUtils { - - private static final int REST_CLIENT_CONNECT_TIMEOUT = 5000; + + private static final int REST_CLIENT_CONNECT_TIMEOUT = 5000; private static final int REST_CLIENT_SOCKET_TIMEOUT = 60000; private static final int REST_CLIENT_RETRY_TIMEOUT = 60000; public ElasticUtilsIBM() { super(); } - - @Override + protected RestHighLevelClient createClient(String username, String password, String host) { RestHighLevelClient restHighLevelClient; @@ -70,29 +69,32 @@ public class ElasticUtilsIBM extends ElasticUtils { new BasicHeader("xpack.security.transport.ssl.enabled", Boolean.toString(true)), new BasicHeader("Authorization", String.format("Basic %s", Base64.getEncoder().encodeToString(rawString.getBytes()))), }; - - + SSLContext sslContext = SSLContext.getInstance("SSL"); // set up a TrustManager that trusts everything - sslContext.init(null, new TrustManager[] { new X509TrustManager() { - public X509Certificate[] getAcceptedIssuers() { - return null; - } - public void checkClientTrusted(X509Certificate[] certs, String authType) { } - public void checkServerTrusted(X509Certificate[] certs, String authType) { } - } }, new SecureRandom()); - - builder.setHttpClientConfigCallback(new HttpClientConfigCallback() { - @Override - public HttpAsyncClientBuilder customizeHttpClient( - HttpAsyncClientBuilder httpClientBuilder) { - return httpClientBuilder - .setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER) - .setSSLContext(sslContext); - } - }) - .setDefaultHeaders(defaultHeaders); - + sslContext.init(null, new TrustManager[]{new X509TrustManager() { + public X509Certificate[] getAcceptedIssuers() { + return null; + } + + public void checkClientTrusted(X509Certificate[] certs, String authType) { + } + + public void checkServerTrusted(X509Certificate[] certs, String authType) { + } + }}, new SecureRandom()); + + builder.setHttpClientConfigCallback(new HttpClientConfigCallback() { + + public HttpAsyncClientBuilder customizeHttpClient( + HttpAsyncClientBuilder httpClientBuilder) { + return httpClientBuilder + .setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER) + .setSSLContext(sslContext); + } + }) + .setDefaultHeaders(defaultHeaders); + restHighLevelClient = new RestHighLevelClient(builder); } catch (Exception e) { @@ -100,5 +102,5 @@ public class ElasticUtilsIBM extends ElasticUtils { } return restHighLevelClient; } - -} \ No newline at end of file + +} diff --git a/testing/pom.xml b/testing/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..1bac11ececef04b5fad0f21269dd96c5b4f59a97 --- /dev/null +++ b/testing/pom.xml @@ -0,0 +1,58 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Copyright 2017-2019, The Open Group + + 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. +--> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <groupId>org.opengroup.osdu</groupId> + <artifactId>indexer-test</artifactId> + <version>0.0.5-SNAPSHOT</version> + <description>Indexer Service Integration Test Root Project</description> + <packaging>pom</packaging> + + <licenses> + <license> + <name>Apache License, Version 2.0</name> + <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url> + <distribution>repo</distribution> + </license> + </licenses> + + <modules> + <module>indexer-test-core</module> + <module>indexer-test-aws</module> + <module>indexer-test-azure</module> + <module>indexer-test-gcp</module> + </modules> + + <repositories> + <repository> + <id>${gitlab-server}</id> + <url>https://community.opengroup.org/api/v4/groups/17/-/packages/maven</url> + </repository> + </repositories> + + <distributionManagement> + <repository> + <id>${gitlab-server}</id> + <url>https://community.opengroup.org/api/v4/projects/19/packages/maven</url> + </repository> + <snapshotRepository> + <id>${gitlab-server}</id> + <url>https://community.opengroup.org/api/v4/projects/19/packages/maven</url> + </snapshotRepository> + </distributionManagement> +</project>