diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 934b672cf4dcfa8f3fea5b0c91b358145b1d68fa..f1d840e87e53ed8ef6759355bf556aba8e8e3c78 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -29,7 +29,7 @@ include: file: "standard-setup.yml" - project: "osdu/platform/ci-cd-pipelines" - file: "build/maven.yml" + file: "build/maven.yml" - project: "osdu/platform/ci-cd-pipelines" file: "scanners/fossa.yml" diff --git a/NOTICE b/NOTICE index 6657c6a472c747ada8406941272e3de4e213f79d..867d79e1792fecb3375bfa6543516c7c5bbfc045 100644 --- a/NOTICE +++ b/NOTICE @@ -55,6 +55,7 @@ The following software have components provided under the terms of this license: - 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 Audit Manager (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 Backup (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for AWS Batch (from https://aws.amazon.com/sdkforjava) @@ -70,10 +71,14 @@ The following software have components provided under the terms of this license: - 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 CodeStar Notifications (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS CodeStar connections (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for AWS Comprehend Medical (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS Compute Optimizer (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 Exchange (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for AWS Data Pipeline (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for AWS DataSync (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for AWS Database Migration Service (from https://aws.amazon.com/sdkforjava) @@ -88,9 +93,11 @@ The following software have components provided under the terms of this license: - AWS Java SDK for AWS Elemental MediaPackage VOD (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 Fault Injection Simulator (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for AWS GameLift (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for AWS Global Accelerator (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for AWS Glue (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS Glue DataBrew (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for AWS Greengrass (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for AWS Ground Station (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for AWS Health APIs and Notifications (from https://aws.amazon.com/sdkforjava) @@ -100,25 +107,36 @@ The following software have components provided under the terms of this license: - AWS Java SDK for AWS IoT 1-Click Devices (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for AWS IoT 1-Click Projects (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 Core Device Advisor (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for AWS IoT Events (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for AWS IoT Events Data (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS IoT Fleet Hub (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS IoT Greengrass V2 (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 IoT Secure Tunneling (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS IoT SiteWise (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for AWS IoT Things Graph (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS IoT Wireless (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for AWS KMS (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for AWS Lake Formation (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 License Manager (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS Marketplace Catalog (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 MediaConnect (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for AWS MediaTailor (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for AWS Migration Hub (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS Migration Hub Config (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for AWS Mobile (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS Network Firewall (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS Network Manager (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 Outposts (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for AWS Performance Insights (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for AWS Pricing (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for AWS RDS Data (from https://aws.amazon.com/sdkforjava) @@ -127,24 +145,40 @@ The following software have components provided under the terms of this license: - AWS Java SDK for AWS Resource Groups Tagging API (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for AWS RoboMaker (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for AWS S3 Control (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS SSO Identity Store (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS SSO OIDC (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for AWS STS (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS Savings Plans (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for AWS Secrets Manager (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for AWS SecurityHub (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 Service Catalog App Registry (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for AWS Shield (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for AWS Signer (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS Single Sign-On (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS Single Sign-On Admin (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 Systems Manager Incident Manager (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS Systems Manager Incident Manager Contacts (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for AWS Transfer for SFTP (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for AWS WAF (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS WAFV2 (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWS Well-Architected Tool (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for AWS X-Ray (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AWSKendraFrontend (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for AWSServerlessApplicationRepository (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Access Analyzer (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 AppConfig (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon AppIntegrations (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for Amazon AppStream (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon Appflow (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for Amazon Athena (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon Augmented AI Runtime (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for Amazon Chime (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) @@ -153,18 +187,29 @@ The following software have components provided under the terms of this license: - AWS Java SDK for Amazon CloudWatch Application Insights (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 CodeGuru Profiler (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon CodeGuru Reviewer (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 Connect Contact Lens (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon Connect Customer Profiles (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon Connect Participant (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for Amazon Data Lifecycle Manager (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon Detective (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon DevOps Guru (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for Amazon DocumentDB with MongoDB compatibility (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 EMR Containers (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for Amazon ElastiCache (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon Elastic Inference (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon Elastic Block Store (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon Elastic Container Registry Public (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for Amazon Elastic Container Service for Kubernetes (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) @@ -173,16 +218,27 @@ The following software have components provided under the terms of this license: - AWS Java SDK for Amazon FSx (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for Amazon Forecast (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for Amazon Forecast Query (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon Fraud Detector (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 HealthLake (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon Honeycode (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon Interactive Video (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for Amazon Kinesis (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for Amazon Kinesis Analytics (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon Kinesis Video Signaling Channels (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 Lex Model Building V2 (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon Lex Runtime V2 (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for Amazon Lightsail (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon Location (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon Lookout for Equipment (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon Lookout for Metrics (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon Lookout for Vision (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for Amazon Machine Learning (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for Amazon Macie (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon Macie 2 (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for Amazon Managed Blockchain (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 Neptune (from https://aws.amazon.com/sdkforjava) @@ -193,6 +249,7 @@ The following software have components provided under the terms of this license: - AWS Java SDK for Amazon Pinpoint Email (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for Amazon Pinpoint SMS and Voice (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for Amazon Polly (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon Prometheus (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for Amazon QLDB (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for Amazon QLDB Session (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for Amazon QuickSight (from https://aws.amazon.com/sdkforjava) @@ -203,18 +260,23 @@ The following software have components provided under the terms of this license: - AWS Java SDK for Amazon Route 53 Resolver (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 S3 on Outposts (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 Feature Store Runtime (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for Amazon SageMaker Runtime (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon Sagemaker Edge Manager (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon Simple Email (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 Textract (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon Timestream Query (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Amazon Timestream Write (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 WorkLink (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for Amazon WorkMail (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for Amazon WorkMail Message Flow (from https://aws.amazon.com/sdkforjava) @@ -222,18 +284,28 @@ The following software have components provided under the terms of this license: - AWS Java SDK for AmazonApiGatewayManagementApi (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for AmazonApiGatewayV2 (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for AmazonMQ (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AmazonMWAA (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AmazonNimbleStudio (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for AmplifyBackend (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Application Migration (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for Auto Scaling (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Braket (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for CodeArtifact (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for EC2 Image Builder (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 FinSpace Public API (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for FinSpace User Environment Management (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for Firewall Management (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for Managed Streaming for Kafka (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Redshift Data API (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Schemas (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for Service Quotas (from https://aws.amazon.com/sdkforjava) +- AWS Java SDK for Synthetics (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) - Adapter: RxJava (from ) @@ -407,6 +479,7 @@ The following software have components provided under the terms of this license: - Microsoft Azure Java Core Library (from https://github.com/Azure/azure-sdk-for-java) - Microsoft Azure Netty HTTP Client Library (from https://github.com/Azure/azure-sdk-for-java) - Microsoft Azure SDK for SQL API of Azure Cosmos DB Service (from https://github.com/Azure/azure-sdk-for-java) +- Mockito (from http://www.mockito.org) - Mockito (from http://mockito.org) - Mockito (from http://mockito.org) - Mojo's Maven plugin for Cobertura (from http://mojo.codehaus.org/cobertura-maven-plugin/) diff --git a/provider/legal-aws/pom.xml b/provider/legal-aws/pom.xml index e58d28b6d580639f6dd44ca641efcce496aa7fc9..35f0029dc9114d5cc7d9e29542df46fc4981f484 100644 --- a/provider/legal-aws/pom.xml +++ b/provider/legal-aws/pom.xml @@ -27,7 +27,7 @@ <packaging>jar</packaging> <properties> - <aws.version>1.11.651</aws.version> + <aws.version>1.11.1018</aws.version> <deployment.environment>dev</deployment.environment> <version.number>0.9.0-SNAPSHOT</version.number> </properties> @@ -37,7 +37,7 @@ <dependency> <groupId>org.opengroup.osdu.core.aws</groupId> <artifactId>os-core-lib-aws</artifactId> - <version>0.3.17</version> + <version>0.9.1-SNAPSHOT</version> </dependency> <dependency> <groupId>org.opengroup.osdu</groupId> @@ -173,7 +173,7 @@ </property> </activation> <properties> - <aws.version>1.11.651</aws.version> + <aws.version>1.11.1018</aws.version> </properties> </profile> <profile> @@ -185,7 +185,7 @@ </property> </activation> <properties> - <aws.version>1.11.632</aws.version> + <aws.version>1.11.1018</aws.version> </properties> </profile> <profile> @@ -197,7 +197,7 @@ </property> </activation> <properties> - <aws.version>1.11.632</aws.version> + <aws.version>1.11.1018</aws.version> </properties> </profile> </profiles> diff --git a/provider/legal-aws/src/main/java/org/opengroup/osdu/legal/aws/countries/StorageReaderFactoryImpl.java b/provider/legal-aws/src/main/java/org/opengroup/osdu/legal/aws/countries/StorageReaderFactoryImpl.java index 9cb09173cf3866b2f345178ca5ce976a348d629c..d8c8ac5adec515ba0e19b34a0a9ebe2817aebeac 100644 --- a/provider/legal-aws/src/main/java/org/opengroup/osdu/legal/aws/countries/StorageReaderFactoryImpl.java +++ b/provider/legal-aws/src/main/java/org/opengroup/osdu/legal/aws/countries/StorageReaderFactoryImpl.java @@ -16,36 +16,23 @@ package org.opengroup.osdu.legal.aws.countries; import org.opengroup.osdu.core.aws.ssm.ParameterStorePropertySource; import org.opengroup.osdu.core.aws.ssm.SSMConfig; +import org.opengroup.osdu.core.common.model.http.DpsHeaders; import org.opengroup.osdu.core.common.model.tenant.TenantInfo; import org.opengroup.osdu.legal.provider.interfaces.IStorageReader; import org.opengroup.osdu.legal.provider.interfaces.IStorageReaderFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; +import javax.inject.Inject; + @Component public class StorageReaderFactoryImpl implements IStorageReaderFactory { - private String legalConfigBucketName; - - @Value("${aws.s3.legal.config.file-name}") - private String legalConfigFileName; - - @Value("${aws.s3.endpoint}") - private String awsS3Endpoint; - - @Value("${aws.s3.region}") - private String awsS3Region; - - @Value("${aws.legal.s3.bucket.name}") - String parameter; - - private ParameterStorePropertySource ssm; + @Inject + StorageReaderImpl storageReaderImpl; @Override public IStorageReader getReader(TenantInfo tenant, String projectRegion) { - SSMConfig ssmConfig = new SSMConfig(); - ssm = ssmConfig.amazonSSM(); - legalConfigBucketName = ssm.getProperty(parameter).toString(); - return new StorageReaderImpl(tenant, legalConfigBucketName, legalConfigFileName, awsS3Endpoint, awsS3Region); + return storageReaderImpl; } } diff --git a/provider/legal-aws/src/main/java/org/opengroup/osdu/legal/aws/countries/StorageReaderImpl.java b/provider/legal-aws/src/main/java/org/opengroup/osdu/legal/aws/countries/StorageReaderImpl.java index 75a88a7b6b2993bcfd583142522359368c3f1488..12acb716b7a822187d1b49350a95c274a90cd498 100644 --- a/provider/legal-aws/src/main/java/org/opengroup/osdu/legal/aws/countries/StorageReaderImpl.java +++ b/provider/legal-aws/src/main/java/org/opengroup/osdu/legal/aws/countries/StorageReaderImpl.java @@ -14,22 +14,72 @@ package org.opengroup.osdu.legal.aws.countries; -import org.opengroup.osdu.core.common.model.tenant.TenantInfo; -import org.opengroup.osdu.legal.aws.tags.dataaccess.S3RecordClient; +import com.amazonaws.AmazonServiceException; +import com.amazonaws.SdkClientException; +import com.amazonaws.services.s3.AmazonS3; +import com.amazonaws.services.s3.model.AmazonS3Exception; +import org.opengroup.osdu.core.aws.s3.IS3ClientFactory; +import org.opengroup.osdu.core.aws.s3.S3ClientWithBucket; +import org.opengroup.osdu.core.common.model.http.AppException; +import org.opengroup.osdu.core.common.model.http.DpsHeaders; import org.opengroup.osdu.legal.provider.interfaces.IStorageReader; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; +import javax.inject.Inject; + +@Component public class StorageReaderImpl implements IStorageReader { - private final TenantInfo tenantInfo; - private S3RecordClient client; - public StorageReaderImpl(TenantInfo tenantInfo, String legalConfigBucketName, String legalConfigFileName, - String awsS3Endpoint, String awsS3Region) { - this.tenantInfo = tenantInfo; - client = new S3RecordClient(legalConfigBucketName, legalConfigFileName, awsS3Endpoint, awsS3Region); - } + @Inject + private DpsHeaders dpsHeaders; + + @Inject + private IS3ClientFactory s3ClientFactory; + + @Value("${aws.s3.configbucket.ssm.relativePath}") + private String s3ConfigBucketParameterRelativePath; + + @Value("${aws.s3.legal.config.file-name}") + private String legalConfigFileName; @Override public byte[] readAllBytes() { - return (client.getConfigFile().getBytes()); //should return a json format of an array of Country class + return getConfigFile().getBytes(); //should return a json format of an array of Country class + } + + public String getConfigFile(){ + S3ClientWithBucket s3ClientWithBucket = s3ClientFactory.getS3ClientForPartition( + dpsHeaders.getPartitionIdWithFallbackToAccountId(), s3ConfigBucketParameterRelativePath); + AmazonS3 s3 = s3ClientWithBucket.getS3Client(); + String legalConfigBucketName = s3ClientWithBucket.getBucketName(); + + String contents = ""; + try { + contents = s3.getObjectAsString(legalConfigBucketName, String.format("%s/%s", dpsHeaders.getPartitionId(), legalConfigFileName)); + } catch (AmazonS3Exception e){ + if(e.getStatusCode() == 404){ + contents = createDefaultConfigFile(s3, legalConfigBucketName); + } else { + throw new AppException(500, "Amazon service exception getting config file", e.getMessage()); + } + } + catch (AmazonServiceException e) { + throw new AppException(500, "Amazon service exception getting config file", e.getMessage()); + } catch (SdkClientException e) { + throw new AppException(500, "Amazon Sdk client exception getting config file", e.getMessage()); + } + return contents; + } + + private String createDefaultConfigFile(AmazonS3 s3, String legalConfigBucketName){ + String contents = "[]"; + try { + s3.putObject(legalConfigBucketName, String.format("%s/%s", + dpsHeaders.getPartitionId(), legalConfigFileName), contents); + } catch (Exception e){ + throw new AppException(500, "Exception creating default config file", e.getMessage()); + } + return contents; } } diff --git a/provider/legal-aws/src/main/java/org/opengroup/osdu/legal/aws/tags/dataaccess/LegalDoc.java b/provider/legal-aws/src/main/java/org/opengroup/osdu/legal/aws/tags/dataaccess/LegalDoc.java index 5b5bbb9ecce6599e40f29f679b564c88fc55929c..2e875542bcba5f75e4f6b9add3520c0ae7de5a48 100644 --- a/provider/legal-aws/src/main/java/org/opengroup/osdu/legal/aws/tags/dataaccess/LegalDoc.java +++ b/provider/legal-aws/src/main/java/org/opengroup/osdu/legal/aws/tags/dataaccess/LegalDoc.java @@ -24,6 +24,9 @@ public class LegalDoc { @DynamoDBHashKey(attributeName = "Id") private String id; + @DynamoDBRangeKey(attributeName = "dataPartitionId") + private String dataPartitionId; + @DynamoDBAttribute(attributeName = "Name") private String name; @@ -46,6 +49,14 @@ public class LegalDoc { this.id = id; } + public String getDataPartitionId(){ + return dataPartitionId; + } + + public void setDataPartitionId(String tenant){ + this.dataPartitionId = tenant; + } + public void setName(String name) { this.name = name; } diff --git a/provider/legal-aws/src/main/java/org/opengroup/osdu/legal/aws/tags/dataaccess/LegalTagRepositoryImpl.java b/provider/legal-aws/src/main/java/org/opengroup/osdu/legal/aws/tags/dataaccess/LegalTagRepositoryImpl.java index bc5d06522755a1045e2343cc91e7d76ce9f3e112..8bebf9171b396f42a6e3f5fe3d892d9ead0d3ed3 100644 --- a/provider/legal-aws/src/main/java/org/opengroup/osdu/legal/aws/tags/dataaccess/LegalTagRepositoryImpl.java +++ b/provider/legal-aws/src/main/java/org/opengroup/osdu/legal/aws/tags/dataaccess/LegalTagRepositoryImpl.java @@ -14,9 +14,14 @@ package org.opengroup.osdu.legal.aws.tags.dataaccess; +import com.amazonaws.services.dynamodbv2.model.AttributeValue; +import org.apache.commons.lang3.StringUtils; import org.apache.http.HttpStatus; import org.opengroup.osdu.core.aws.dynamodb.DynamoDBQueryHelper; +import org.opengroup.osdu.core.aws.dynamodb.DynamoDBQueryHelperFactory; +import org.opengroup.osdu.core.aws.dynamodb.DynamoDBQueryHelperV2; import org.opengroup.osdu.core.aws.dynamodb.QueryPageResult; +import org.opengroup.osdu.core.common.model.http.DpsHeaders; import org.opengroup.osdu.core.common.model.legal.ListLegalTagArgs; import org.opengroup.osdu.core.common.model.legal.LegalTag; @@ -26,30 +31,31 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Repository; import javax.annotation.PostConstruct; +import javax.inject.Inject; import java.io.UnsupportedEncodingException; import java.util.*; @Repository // why use repository over component over service public class LegalTagRepositoryImpl implements ILegalTagRepository { - @Value("${aws.dynamodb.table.prefix}") - String tablePrefix; + @Inject + private DpsHeaders headers; - @Value("${aws.dynamodb.region}") - String dynamoDbRegion; + @Inject + private DynamoDBQueryHelperFactory dynamoDBQueryHelperFactory; - @Value("${aws.dynamodb.endpoint}") - String dynamoDbEndpoint; + @Value("${aws.dynamodb.legalTable.ssm.relativePath}") + String legalRepositoryTableParameterRelativePath; - private DynamoDBQueryHelper queryHelper; - - @PostConstruct - public void init(){ - queryHelper = new DynamoDBQueryHelper(dynamoDbEndpoint, dynamoDbRegion, tablePrefix); + private DynamoDBQueryHelperV2 getLegalRepositoryQueryHelper() { + return dynamoDBQueryHelperFactory.getQueryHelperForPartition(headers, legalRepositoryTableParameterRelativePath); } + @Override public Long create(LegalTag legalTag) { + DynamoDBQueryHelperV2 queryHelper = getLegalRepositoryQueryHelper(); + LegalDoc legalDoc = CreateLegalDocFromTag(legalTag); if (queryHelper.keyExistsInTable(LegalDoc.class, legalDoc)){ throw new AppException(409, "Legal tag conflict", String.format( @@ -61,10 +67,12 @@ public class LegalTagRepositoryImpl implements ILegalTagRepository { @Override public Collection<LegalTag> get(long[] ids) { + DynamoDBQueryHelperV2 queryHelper = getLegalRepositoryQueryHelper(); + List<LegalTag> tags = new ArrayList<>(); for(long id: ids) { - LegalDoc ld = queryHelper.loadByPrimaryKey(LegalDoc.class, String.valueOf(id)); //dynamoDBLegal.findById(String.valueOf(id)); + LegalDoc ld = queryHelper.loadByPrimaryKey(LegalDoc.class, String.valueOf(id), headers.getPartitionId()); //dynamoDBLegal.findById(String.valueOf(id)); if(ld != null) { tags.add(CreateLegalTagFromDoc(ld)); } @@ -75,9 +83,11 @@ public class LegalTagRepositoryImpl implements ILegalTagRepository { @Override public Boolean delete(LegalTag legalTag) { + DynamoDBQueryHelperV2 queryHelper = getLegalRepositoryQueryHelper(); + Boolean result = true; try { - queryHelper.deleteByPrimaryKey(LegalDoc.class, String.valueOf(legalTag.getId())); + queryHelper.deleteByPrimaryKey(LegalDoc.class, String.valueOf(legalTag.getId()), headers.getPartitionId()); } catch (Exception e){ // should be dynamodb specific exception result = false; // might need to throw app exception @@ -94,15 +104,24 @@ public class LegalTagRepositoryImpl implements ILegalTagRepository { @Override public Collection<LegalTag> list(ListLegalTagArgs args) { + DynamoDBQueryHelperV2 queryHelper = getLegalRepositoryQueryHelper(); + + String filterExpression = "dataPartitionId = :partitionId"; + + AttributeValue dataPartitionAttributeValue = new AttributeValue(headers.getPartitionId()); + + Map<String, AttributeValue> eav = new HashMap<>(); + eav.put(":partitionId", dataPartitionAttributeValue); + int limit = args.getLimit(); List<LegalDoc> docs = null; List<LegalTag> tags = new ArrayList<>(); try { if(limit <= 0){ - docs = queryHelper.scanTable(LegalDoc.class); + docs = queryHelper.scanTable(LegalDoc.class, filterExpression, eav); } else { - QueryPageResult<LegalDoc> scanPageResults = queryHelper.scanPage(LegalDoc.class, limit, args.getCursor()); + QueryPageResult<LegalDoc> scanPageResults = queryHelper.scanPage(LegalDoc.class, limit, args.getCursor(),filterExpression, eav); if (scanPageResults != null) docs = scanPageResults.results; } } catch (UnsupportedEncodingException e) { @@ -120,6 +139,8 @@ public class LegalTagRepositoryImpl implements ILegalTagRepository { } private Long save(LegalDoc legalDoc){ + DynamoDBQueryHelperV2 queryHelper = getLegalRepositoryQueryHelper(); + Long id = -1L; if(legalDoc != null){ queryHelper.save(legalDoc); @@ -141,6 +162,7 @@ public class LegalTagRepositoryImpl implements ILegalTagRepository { private LegalDoc CreateLegalDocFromTag(LegalTag legalTag){ LegalDoc legalDoc = new LegalDoc(); legalDoc.setId(String.valueOf(legalTag.getId())); + legalDoc.setDataPartitionId(headers.getPartitionId()); legalDoc.setDescription(legalTag.getDescription()); legalDoc.setName(legalTag.getName()); legalDoc.setProperties(legalTag.getProperties()); diff --git a/provider/legal-aws/src/main/java/org/opengroup/osdu/legal/aws/tags/dataaccess/S3RecordClient.java b/provider/legal-aws/src/main/java/org/opengroup/osdu/legal/aws/tags/dataaccess/S3RecordClient.java deleted file mode 100644 index d295c1b21ec833c07d84feafd340e7465943218e..0000000000000000000000000000000000000000 --- a/provider/legal-aws/src/main/java/org/opengroup/osdu/legal/aws/tags/dataaccess/S3RecordClient.java +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright © Amazon Web Services -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package org.opengroup.osdu.legal.aws.tags.dataaccess; - -import com.amazonaws.AmazonServiceException; -import com.amazonaws.SdkClientException; -import com.amazonaws.services.s3.AmazonS3; -import org.opengroup.osdu.core.aws.s3.S3Config; -import org.opengroup.osdu.core.common.model.http.AppException; - -public class S3RecordClient { - - // Storing all records in one bucket does not impact performance, no need to spread keys anymore - private String legalConfigBucketName; - private String legalConfigFileName; - - private AmazonS3 s3; - - public S3RecordClient(String legalConfigBucketName, String legalConfigFileName, String awsS3Endpoint, String awsS3Region){ - this.legalConfigBucketName = legalConfigBucketName; - this.legalConfigFileName = legalConfigFileName; - S3Config s3Config = new S3Config(awsS3Endpoint, awsS3Region); - s3 = s3Config.amazonS3(); - } - - public String getConfigFile(){ - String contents = ""; - try { - contents = s3.getObjectAsString(legalConfigBucketName, legalConfigFileName); - } catch (AmazonServiceException e) { - throw new AppException(500, "Amazon service exception getting config file", e.getMessage()); - } catch (SdkClientException e) { - throw new AppException(500, "Amazon Sdk client exception getting config file", e.getMessage()); - } - return contents; - } -} diff --git a/provider/legal-aws/src/main/resources/application.properties b/provider/legal-aws/src/main/resources/application.properties index c3c28a1323b784344345befb9ebb45c97286c807..3af3c71e2c4052b61f5e036f0675c26992d29f64 100644 --- a/provider/legal-aws/src/main/resources/application.properties +++ b/provider/legal-aws/src/main/resources/application.properties @@ -7,21 +7,18 @@ server.port=${APPLICATION_PORT} ## AWS Lambda configuration aws.lambda.get-groups-function-name=${ENVIRONMENT}-os-entitlements-GroupsFunction +aws.environment=${ENVIRONMENT} +aws.parameter.prefix=/osdu/${ENVIRONMENT} +aws.resourcePrefix=${ENVIRONMENT} +aws.region=${AWS_REGION} + REGION=${AWS_REGION} -AUTHORIZE_API=${ENTITLEMENTS_BASE_URL}/api/entitlements/v1 +AUTHORIZE_API=${ENTITLEMENTS_BASE_URL}/api/entitlements/v2 +PARTITION_API=${ENTITLEMENTS_BASE_URL}/api/partition/v1 LEGAL_HOSTNAME=notused CRON_JOB_IP=10.0.0.1 ACCEPT_HTTP=true - -## AWS DynamoDB configuration -aws.dynamodb.key=id -aws.dynamodb.table.prefix=${ENVIRONMENT}- -aws.dynamodb.region=${AWS_REGION} -aws.dynamodb.endpoint=dynamodb.${AWS_REGION}.amazonaws.com - -## AWS S3 configuration -aws.s3.region=${AWS_REGION} -aws.s3.endpoint=s3.${AWS_REGION}.amazonaws.com + aws.s3.legal.config.file-name=Legal_COO.json ## AWS SNS configuration @@ -30,7 +27,10 @@ aws.sns.region=${AWS_REGION} aws.ssm=${SSM_ENABLED} aws.ssm.prefix=/osdu/${ENVIRONMENT} aws.legal.sns.topic.arn=${aws.ssm.prefix}/legal/legal-sns-topic-arn -aws.legal.s3.bucket.name=${aws.ssm.prefix}/legal/legal-s3-bucket-name + +aws.s3.configbucket.ssm.relativePath=${CONFIG_BUCKET_SSM_RELATIVE_PATH:legal/s3DataBucket} +aws.s3.configfilename.ssm.relativePath=${CONFIG_FILE_SSM_RELATIVE_PATH:legal/s3ConfigFileName} +aws.dynamodb.legalTable.ssm.relativePath=${LEGAL_REPOSITORY_SSM_RELATIVE_PATH:legal/legalTable} server.ssl.enabled=${SSL_ENABLED:true} server.ssl.key-store-type=PKCS12 diff --git a/provider/legal-aws/src/main/resources/skipper.keystore b/provider/legal-aws/src/main/resources/skipper.keystore deleted file mode 100644 index 3524c7c68dcd9b53cb13971f955654774ea1dd35..0000000000000000000000000000000000000000 Binary files a/provider/legal-aws/src/main/resources/skipper.keystore and /dev/null differ diff --git a/provider/legal-aws/src/test/java/org/opengroup/osdu/legal/aws/api/LegalTagRepositoryImplTest.java b/provider/legal-aws/src/test/java/org/opengroup/osdu/legal/aws/api/LegalTagRepositoryImplTest.java index d3c1832d1ca450a3c6eb73fa1eb3b4f3a0efb65f..03abdf8a4fc174d53cb97277702cdfe958ca5694 100644 --- a/provider/legal-aws/src/test/java/org/opengroup/osdu/legal/aws/api/LegalTagRepositoryImplTest.java +++ b/provider/legal-aws/src/test/java/org/opengroup/osdu/legal/aws/api/LegalTagRepositoryImplTest.java @@ -21,13 +21,17 @@ import org.junit.runner.RunWith; import org.mockito.*; import org.mockito.runners.MockitoJUnitRunner; import org.opengroup.osdu.core.aws.dynamodb.DynamoDBQueryHelper; +import org.opengroup.osdu.core.aws.dynamodb.DynamoDBQueryHelperFactory; +import org.opengroup.osdu.core.aws.dynamodb.DynamoDBQueryHelperV2; import org.opengroup.osdu.core.aws.dynamodb.QueryPageResult; +import org.opengroup.osdu.core.common.model.http.DpsHeaders; import org.opengroup.osdu.legal.aws.tags.dataaccess.LegalDoc; import org.opengroup.osdu.legal.aws.tags.dataaccess.LegalTagRepositoryImpl; import org.opengroup.osdu.core.common.model.legal.ListLegalTagArgs; import org.opengroup.osdu.core.common.model.legal.LegalTag; import org.springframework.boot.test.context.SpringBootTest; +import javax.inject.Inject; import java.io.UnsupportedEncodingException; import java.util.*; @@ -41,11 +45,19 @@ public class LegalTagRepositoryImplTest { private LegalTagRepositoryImpl repo = new LegalTagRepositoryImpl(); @Mock - DynamoDBQueryHelper queryHelper; + private DynamoDBQueryHelperV2 queryHelper; + + @Mock + private DpsHeaders headers; + + @Mock + private DynamoDBQueryHelperFactory dynamoDBQueryHelperFactory; @Before public void setUp() { initMocks(this); + Mockito.when(dynamoDBQueryHelperFactory.getQueryHelperForPartition(Mockito.any(DpsHeaders.class), Mockito.any())) + .thenReturn(queryHelper); } @Test @@ -72,15 +84,13 @@ public class LegalTagRepositoryImplTest { 1L, 2L, 3L }; - Mockito.when(queryHelper.loadByPrimaryKey(Mockito.any(), Mockito.anyString())).thenReturn(null); - // act repo.get(ids); // assert - Mockito.verify(queryHelper, Mockito.times(1)).loadByPrimaryKey(Mockito.any(), Mockito.eq("1")); - Mockito.verify(queryHelper, Mockito.times(1)).loadByPrimaryKey(Mockito.any(), Mockito.eq("2")); - Mockito.verify(queryHelper, Mockito.times(1)).loadByPrimaryKey(Mockito.any(), Mockito.eq("3")); + Mockito.verify(queryHelper, Mockito.times(1)).loadByPrimaryKey(Mockito.any(), Mockito.eq("1"), Mockito.any()); + Mockito.verify(queryHelper, Mockito.times(1)).loadByPrimaryKey(Mockito.any(), Mockito.eq("2"), Mockito.any()); + Mockito.verify(queryHelper, Mockito.times(1)).loadByPrimaryKey(Mockito.any(), Mockito.eq("3"), Mockito.any()); } @Test @@ -96,7 +106,7 @@ public class LegalTagRepositoryImplTest { repo.delete(tag); // assert - Mockito.verify(queryHelper, Mockito.times(1)).deleteByPrimaryKey(Mockito.any(), Mockito.eq("-100")); + Mockito.verify(queryHelper, Mockito.times(1)).deleteByPrimaryKey(Mockito.any(), Mockito.eq("-100"), Mockito.any()); } @Test @@ -133,7 +143,7 @@ public class LegalTagRepositoryImplTest { QueryPageResult<LegalDoc> page = new QueryPageResult<LegalDoc>(null, listLd); try { - Mockito.when(queryHelper.scanPage(Mockito.eq(LegalDoc.class), Mockito.eq(100),Mockito.any())) + Mockito.when(queryHelper.scanPage(Mockito.eq(LegalDoc.class), Mockito.eq(100),Mockito.any(), Mockito.any(), Mockito.any())) .thenReturn(page); } catch (UnsupportedEncodingException e) { Assert.fail("Unexpected exception"); @@ -163,13 +173,6 @@ public class LegalTagRepositoryImplTest { listLd.add(ld); QueryPageResult<LegalDoc> page = new QueryPageResult<LegalDoc>(null, listLd); - try { - Mockito.when(queryHelper.scanPage(Mockito.eq(LegalDoc.class), Mockito.eq(100),Mockito.any())) - .thenReturn(page); - } catch (UnsupportedEncodingException e) { - Assert.fail("Unexpected exception"); - } - // act ArrayList<LegalTag> tags = (ArrayList)repo.list(args); @@ -185,13 +188,6 @@ public class LegalTagRepositoryImplTest { args.setCursor("{{\"title\"={\"S\":\"Monster on the Campus\",}},{\"title\":{\"S\":\"+1\",}},}}}"); args.setLimit(100); - try { - Mockito.when(queryHelper.scanPage(Mockito.eq(LegalDoc.class), Mockito.eq(100),Mockito.any())) - .thenReturn(null); - } catch (UnsupportedEncodingException e) { - Assert.fail("Unexpected exception"); - } - // act ArrayList<LegalTag> tags = (ArrayList)repo.list(args); diff --git a/testing/legal-test-aws/pom.xml b/testing/legal-test-aws/pom.xml index 8f199b4de457db4d57edd690c0a9fabc045a1e8c..fa9fd399153677912b0b8b5fce5578937d31909e 100644 --- a/testing/legal-test-aws/pom.xml +++ b/testing/legal-test-aws/pom.xml @@ -45,25 +45,25 @@ <dependency> <groupId>org.opengroup.osdu.core.aws</groupId> <artifactId>os-core-lib-aws</artifactId> - <version>0.3.16</version> + <version>0.9.1-SNAPSHOT</version> </dependency> <!-- AWS managed packages --> <dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-java-sdk</artifactId> - <version>1.11.651</version> + <version>1.11.1018</version> </dependency> <dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-java-sdk-bom</artifactId> - <version>1.11.651</version> + <version>1.11.1018</version> <type>pom</type> </dependency> <dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-java-sdk-dynamodb</artifactId> - <version>1.11.651</version> + <version>1.11.1018</version> </dependency> <!-- third party Apache 2.0 license packages --> diff --git a/testing/legal-test-aws/src/test/java/org/opengroup/osdu/legal/util/AwsLegalTagUtils.java b/testing/legal-test-aws/src/test/java/org/opengroup/osdu/legal/util/AwsLegalTagUtils.java index 329990130bcc766195d136c860373afb077578b0..2ed3b8f6060fbbeed48c8c165a52294e25dd2e65 100644 --- a/testing/legal-test-aws/src/test/java/org/opengroup/osdu/legal/util/AwsLegalTagUtils.java +++ b/testing/legal-test-aws/src/test/java/org/opengroup/osdu/legal/util/AwsLegalTagUtils.java @@ -22,6 +22,7 @@ import java.util.List; import com.amazonaws.services.s3.AmazonS3; import org.opengroup.osdu.core.aws.cognito.AWSCognitoClient; import org.opengroup.osdu.core.aws.dynamodb.DynamoDBQueryHelper; +import org.opengroup.osdu.core.aws.dynamodb.DynamoDBQueryHelperV2; import org.opengroup.osdu.core.aws.s3.S3Config; import org.opengroup.osdu.core.common.model.legal.Properties; import org.springframework.beans.factory.annotation.Value; @@ -45,12 +46,13 @@ public class AwsLegalTagUtils extends LegalTagUtils { public synchronized void uploadTenantTestingConfigFile() { String amazonS3Endpoint = System.getProperty("AWS_S3_ENDPOINT", System.getenv("AWS_S3_ENDPOINT")); String amazonS3Region = System.getProperty("AWS_S3_REGION", System.getenv("AWS_S3_REGION")); + String dataPartitionId = System.getProperty("MY_TENANT", System.getenv("MY_TENANT")); S3Config s3Config = new S3Config(amazonS3Endpoint, amazonS3Region); AmazonS3 s3Client = s3Config.amazonS3(); try { - s3Client.putObject(BUCKET_NAME_AWS, FILE_NAME, readTestFile("TenantConfigTestingPurpose.json")); + s3Client.putObject(BUCKET_NAME_AWS, String.format("%s/%s", dataPartitionId, FILE_NAME), readTestFile("TenantConfigTestingPurpose.json")); } catch(IOException e){ throw new RuntimeException(e.getMessage(), e); } @@ -92,15 +94,17 @@ public class AwsLegalTagUtils extends LegalTagUtils { properties.setExportClassification("EAR99"); doc.setProperties(properties); - String tablePrefix = String.format("%s%s", System.getenv(TABLE_PREFIX), "-"); + doc.setDataPartitionId(getMyDataPartition()); + String dynamoDbRegion = System.getenv(DYNAMO_DB_REGION); String dynamoDbEndpoint = System.getenv(DYNAMO_DB_ENDPOINT); - DynamoDBQueryHelper queryHelper = new DynamoDBQueryHelper(dynamoDbEndpoint, dynamoDbRegion, tablePrefix); + String table = String.format("%s-shared-LegalRepository", System.getenv(TABLE_PREFIX)); + DynamoDBQueryHelperV2 queryHelper = new DynamoDBQueryHelperV2(dynamoDbEndpoint, dynamoDbRegion, table); // delete legal tag if it exists if(queryHelper.keyExistsInTable(LegalDoc.class, doc)){ - queryHelper.deleteByPrimaryKey(LegalDoc.class, doc.getId()); + queryHelper.deleteByPrimaryKey(LegalDoc.class, doc.getId(), doc.getDataPartitionId()); } queryHelper.save(doc); diff --git a/testing/legal-test-aws/src/test/java/org/opengroup/osdu/legal/util/LegalDoc.java b/testing/legal-test-aws/src/test/java/org/opengroup/osdu/legal/util/LegalDoc.java index f8e0c0b1d0a2b6dc8aa9cfca3472ab38fc571b7c..6b20d3dc93dfcefbb1e160e9963090a97be7108e 100644 --- a/testing/legal-test-aws/src/test/java/org/opengroup/osdu/legal/util/LegalDoc.java +++ b/testing/legal-test-aws/src/test/java/org/opengroup/osdu/legal/util/LegalDoc.java @@ -14,10 +14,7 @@ package org.opengroup.osdu.legal.util; -import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBAttribute; -import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBHashKey; -import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBTable; -import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBTypeConverted; +import com.amazonaws.services.dynamodbv2.datamodeling.*; import org.opengroup.osdu.core.common.model.legal.Properties; @@ -27,6 +24,9 @@ public class LegalDoc { @DynamoDBHashKey(attributeName = "Id") private String id; + @DynamoDBRangeKey(attributeName = "dataPartitionId") + private String dataPartitionId; + @DynamoDBAttribute(attributeName = "Name") private String name; @@ -49,6 +49,14 @@ public class LegalDoc { this.id = id; } + public String getDataPartitionId(){ + return dataPartitionId; + } + + public void setDataPartitionId(String tenant){ + this.dataPartitionId = tenant; + } + public void setName(String name) { this.name = name; }