diff --git a/provider/partition-aws/pom.xml b/provider/partition-aws/pom.xml index ffeec3c155990010629fa5ea4ac551e4cdd96c90..14762c776b4ae158923277192f42556a0fed745e 100644 --- a/provider/partition-aws/pom.xml +++ b/provider/partition-aws/pom.xml @@ -57,7 +57,7 @@ <dependency> <groupId>org.opengroup.osdu.core.aws</groupId> <artifactId>os-core-lib-aws</artifactId> - <version>0.13.0</version> + <version>0.14.0-SNAPSHOT</version> </dependency> <dependency> <groupId>org.opengroup.osdu</groupId> diff --git a/provider/partition-aws/src/main/java/org/opengroup/osdu/partition/provider/aws/PartitionApplication.java b/provider/partition-aws/src/main/java/org/opengroup/osdu/partition/provider/aws/PartitionApplication.java index 73a6259f7cc1f45c028c844864b0ff37b0355ea9..789c48bcf2035f3450b42b70fe2f27d99db6d463 100644 --- a/provider/partition-aws/src/main/java/org/opengroup/osdu/partition/provider/aws/PartitionApplication.java +++ b/provider/partition-aws/src/main/java/org/opengroup/osdu/partition/provider/aws/PartitionApplication.java @@ -14,15 +14,12 @@ package org.opengroup.osdu.partition.provider.aws; -import org.opengroup.osdu.core.aws.mongodb.config.MongoDBAutoconfigExclude; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.FilterType; @ComponentScan( - basePackages = {"org.opengroup.osdu"}, - excludeFilters = {@ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, value = MongoDBAutoconfigExclude.class)}) + basePackages = {"org.opengroup.osdu"}) @SpringBootApplication public class PartitionApplication { diff --git a/provider/partition-aws/src/main/java/org/opengroup/osdu/partition/provider/aws/util/MongoConfig.java b/provider/partition-aws/src/main/java/org/opengroup/osdu/partition/provider/aws/util/MongoConfig.java index 60105104c7ea1ae571321dd521d41fb77479c926..3bc84710e3075e2b455909c210a2704f7dd1bb0e 100644 --- a/provider/partition-aws/src/main/java/org/opengroup/osdu/partition/provider/aws/util/MongoConfig.java +++ b/provider/partition-aws/src/main/java/org/opengroup/osdu/partition/provider/aws/util/MongoConfig.java @@ -14,62 +14,18 @@ package org.opengroup.osdu.partition.provider.aws.util; -import com.mongodb.ConnectionString; +import org.opengroup.osdu.core.aws.mongodb.MongoDBSimpleFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.data.mongodb.core.MongoClientFactoryBean; - -import javax.inject.Inject; +import org.springframework.data.mongodb.core.MongoTemplate; @Configuration public class MongoConfig { - @Inject - MongoProperties props; - - public String getMongoURI() { - - Boolean useSrvEndpoint = Boolean.parseBoolean(props.getUseSrvEndpointStr()); - - if (useSrvEndpoint) { - - String srvUriFormat = "mongodb+srv://%s:%s@%s/%s?ssl=%s&retryWrites=%s&w=%s"; - - String srvUri = String.format( - srvUriFormat, - props.getUsername(), - props.getPassword(), - props.getEndpoint(), - props.getAuthDatabase(), - props.getEnableTLS(), - props.getRetryWrites(), - props.getWriteMode()); - - return srvUri; - } - else { - String uriFormat = "mongodb+srv://%s:%s@%s/%s?retryWrites=%s&w=%s"; - - String uri = String.format( - uriFormat, - props.getUsername(), - props.getPassword(), - props.getEndpoint(), - props.getAuthDatabase(), -// props.getEnableTLS(), - props.getRetryWrites(), - props.getWriteMode()); - - return uri; - } - } - - public @Bean MongoClientFactoryBean mongo() { - ConnectionString connectionString = new ConnectionString(this.getMongoURI()); - - MongoClientFactoryBean mongo = new MongoClientFactoryBean(); - mongo.setConnectionString(connectionString); - return mongo; + @Autowired + public @Bean MongoTemplate mongoTemplate(MongoDBSimpleFactory mongoDBFactory, MongoPropertiesReader propertiesReader) { + return mongoDBFactory.mongoTemplate(propertiesReader.getProperties()); } } diff --git a/provider/partition-aws/src/main/java/org/opengroup/osdu/partition/provider/aws/util/MongoProperties.java b/provider/partition-aws/src/main/java/org/opengroup/osdu/partition/provider/aws/util/MongoPropertiesReader.java similarity index 69% rename from provider/partition-aws/src/main/java/org/opengroup/osdu/partition/provider/aws/util/MongoProperties.java rename to provider/partition-aws/src/main/java/org/opengroup/osdu/partition/provider/aws/util/MongoPropertiesReader.java index 432b5214a556d9ef6c27a576293207f2927cc5ea..f462f4ac0a0751d3e5e25fcc0e147c03fe22581a 100644 --- a/provider/partition-aws/src/main/java/org/opengroup/osdu/partition/provider/aws/util/MongoProperties.java +++ b/provider/partition-aws/src/main/java/org/opengroup/osdu/partition/provider/aws/util/MongoPropertiesReader.java @@ -15,22 +15,18 @@ package org.opengroup.osdu.partition.provider.aws.util; -import java.util.Map; - -import javax.annotation.PostConstruct; - import com.fasterxml.jackson.core.JsonProcessingException; - +import org.opengroup.osdu.core.aws.mongodb.config.MongoProperties; import org.opengroup.osdu.core.aws.ssm.K8sLocalParameterProvider; import org.opengroup.osdu.core.aws.ssm.K8sParameterNotFoundException; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; -import lombok.Data; +import javax.annotation.PostConstruct; +import java.util.Map; -@Data @Component -public class MongoProperties { +public class MongoPropertiesReader { @Value("${osdu.mongodb.username}") private String username; @@ -50,6 +46,12 @@ public class MongoProperties { private String useSrvEndpointStr; @Value("${osdu.mongodb.enableTLS}") private String enableTLS; + @Value("${spring.data.mongodb.database}") + private String databaseName; + @Value("${osdu.mongodb.maxPoolSize}") + private String maxPoolSize; + @Value("${osdu.mongodb.readPreference}") + private String readPreference; @PostConstruct private void init() throws K8sParameterNotFoundException, JsonProcessingException { @@ -57,7 +59,7 @@ public class MongoProperties { K8sLocalParameterProvider provider = new K8sLocalParameterProvider(); if (!provider.getLocalMode()) { - Map<String,String> credentials = provider.getCredentialsAsMap("mongodb_credentials"); + Map<String, String> credentials = provider.getCredentialsAsMap("mongodb_credentials"); if (credentials != null) { username = credentials.get("username"); @@ -71,6 +73,20 @@ public class MongoProperties { } } - - + public MongoProperties getProperties() { + return MongoProperties.builder() + .username(username) + .password(password) + .endpoint(endpoint) + .authDatabase(authDatabase) + .port(port) + .retryWrites(retryWrites) + .writeMode(writeMode) + .useSrvEndpointStr(useSrvEndpointStr) + .enableTLS(enableTLS) + .databaseName(databaseName) + .maxPoolSize(maxPoolSize) + .readPreference(readPreference) + .build(); + } } diff --git a/provider/partition-aws/src/main/resources/application.properties b/provider/partition-aws/src/main/resources/application.properties index aebc3243cc597ac5b23b44b94da740e5b2d04081..cf59ba783156ca1632ae7461a0743683d12503f5 100644 --- a/provider/partition-aws/src/main/resources/application.properties +++ b/provider/partition-aws/src/main/resources/application.properties @@ -54,10 +54,15 @@ osdu.mongodb.retryWrites=${MONGODB_RETRY_WRITES:true} osdu.mongodb.writeMode=${MONGODB_WRITE_MODE:majority} osdu.mongodb.useSrvEndpoint=${MONGODB_USE_SRV_ENDPOINT:true} osdu.mongodb.enableTLS=${MONGODB_ENABLE_TLS:false} +osdu.mongodb.maxPoolSize=${MONGODB_MAX_POOL_SIZE:300} +osdu.mongodb.readPreference=${MONGODB_READ_PREFERENCE:nearest} #AWS KMS Config aws.kms.keyArn=${KEY_ARN:empty} +#Tomcat limits +server.tomcat.threads.max=${TOMCAT_THREADS_MAX:300} + spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration ## AWS ElastiCache configuration aws.elasticache.cluster.endpoint=${CACHE_CLUSTER_ENDPOINT:null}