diff --git a/archaius-aws/src/main/java/com/netflix/config/sources/AbstractDynamoDbConfigurationSource.java b/archaius-aws/src/main/java/com/netflix/config/sources/AbstractDynamoDbConfigurationSource.java index 5f69de09b..31d850d5b 100644 --- a/archaius-aws/src/main/java/com/netflix/config/sources/AbstractDynamoDbConfigurationSource.java +++ b/archaius-aws/src/main/java/com/netflix/config/sources/AbstractDynamoDbConfigurationSource.java @@ -15,19 +15,15 @@ */ package com.netflix.config.sources; -import com.amazonaws.ClientConfiguration; -import com.amazonaws.auth.AWSCredentials; -import com.amazonaws.auth.AWSCredentialsProvider; -import com.amazonaws.services.dynamodbv2.AmazonDynamoDB; -import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient; -import com.amazonaws.services.dynamodbv2.model.ProvisionedThroughputExceededException; -import com.amazonaws.services.dynamodbv2.model.ScanRequest; -import com.amazonaws.services.dynamodbv2.model.ScanResult; import com.netflix.config.DynamicLongProperty; import com.netflix.config.DynamicPropertyFactory; import com.netflix.config.DynamicStringProperty; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import software.amazon.awssdk.services.dynamodb.DynamoDbClient; +import software.amazon.awssdk.services.dynamodb.model.ProvisionedThroughputExceededException; +import software.amazon.awssdk.services.dynamodb.model.ScanRequest; +import software.amazon.awssdk.services.dynamodb.model.ScanResponse; import java.util.Map; @@ -74,44 +70,13 @@ public abstract class AbstractDynamoDbConfigurationSource { protected DynamicLongProperty maxRetryCount = DynamicPropertyFactory.getInstance() .getLongProperty(maxRetryCountPropertyName, defaultMaxRetryCount); - protected AmazonDynamoDB dbClient; + protected DynamoDbClient dbClient; - public AbstractDynamoDbConfigurationSource() { - this(new AmazonDynamoDBClient()); - setEndpoint(); - } - - public AbstractDynamoDbConfigurationSource(ClientConfiguration clientConfiguration) { - this(new AmazonDynamoDBClient(clientConfiguration)); - setEndpoint(); - } - - public AbstractDynamoDbConfigurationSource(AWSCredentials credentials) { - this(new AmazonDynamoDBClient(credentials)); - setEndpoint(); - } - - public AbstractDynamoDbConfigurationSource(AWSCredentials credentials, ClientConfiguration clientConfiguration) { - this(new AmazonDynamoDBClient(credentials, clientConfiguration)); - setEndpoint(); - } - - public AbstractDynamoDbConfigurationSource(AWSCredentialsProvider credentialsProvider) { - this(new AmazonDynamoDBClient(credentialsProvider)); - setEndpoint(); - } - - public AbstractDynamoDbConfigurationSource(AWSCredentialsProvider credentialsProvider, ClientConfiguration clientConfiguration) { - this(new AmazonDynamoDBClient(credentialsProvider, clientConfiguration)); - setEndpoint(); - } - - public AbstractDynamoDbConfigurationSource(AmazonDynamoDB dbClient) { + public AbstractDynamoDbConfigurationSource(DynamoDbClient dbClient) { this.dbClient = dbClient; } - - protected ScanResult dbScanWithThroughputBackOff(ScanRequest scanRequest) { + protected ScanResponse dbScanWithThroughputBackOff(ScanRequest scanRequest) { Long currentBackOffMs = minBackOffMs.get(); Long retryCount = 0L; while (true) { @@ -143,10 +108,4 @@ public void validateDb(){ loadPropertiesFromTable(table); log.info("Successfully polled Dynamo for a new configuration based on table:" + table); } - - private void setEndpoint() { - String endpoint = endpointName.get(); - dbClient.setEndpoint(endpoint); - log.info("Set Dynamo endpoint:" + endpoint); - } } diff --git a/archaius-aws/src/main/java/com/netflix/config/sources/DynamoDbConfigurationSource.java b/archaius-aws/src/main/java/com/netflix/config/sources/DynamoDbConfigurationSource.java index 23245f583..315f8deac 100644 --- a/archaius-aws/src/main/java/com/netflix/config/sources/DynamoDbConfigurationSource.java +++ b/archaius-aws/src/main/java/com/netflix/config/sources/DynamoDbConfigurationSource.java @@ -15,20 +15,14 @@ */ package com.netflix.config.sources; -import com.amazonaws.ClientConfiguration; -import com.amazonaws.auth.AWSCredentials; -import com.amazonaws.auth.AWSCredentialsProvider; -import com.amazonaws.services.dynamodbv2.AmazonDynamoDB; -import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient; -import com.amazonaws.services.dynamodbv2.model.AttributeValue; -import com.amazonaws.services.dynamodbv2.model.ScanRequest; -import com.amazonaws.services.dynamodbv2.model.ScanResult; -import com.netflix.config.DynamicPropertyFactory; -import com.netflix.config.DynamicStringProperty; import com.netflix.config.PollResult; import com.netflix.config.PolledConfigurationSource; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import software.amazon.awssdk.services.dynamodb.DynamoDbClient; +import software.amazon.awssdk.services.dynamodb.model.AttributeValue; +import software.amazon.awssdk.services.dynamodb.model.ScanRequest; +import software.amazon.awssdk.services.dynamodb.model.ScanResponse; import java.util.HashMap; import java.util.Map; @@ -42,31 +36,7 @@ public class DynamoDbConfigurationSource extends AbstractDynamoDbConfigurationSource implements PolledConfigurationSource { private static final Logger log = LoggerFactory.getLogger(DynamoDbConfigurationSource.class); - public DynamoDbConfigurationSource() { - super(); - } - - public DynamoDbConfigurationSource(ClientConfiguration clientConfiguration) { - super(clientConfiguration); - } - - public DynamoDbConfigurationSource(AWSCredentials credentials) { - super(credentials); - } - - public DynamoDbConfigurationSource(AWSCredentials credentials, ClientConfiguration clientConfiguration) { - super(credentials, clientConfiguration); - } - - public DynamoDbConfigurationSource(AWSCredentialsProvider credentialsProvider) { - super(credentialsProvider); - } - - public DynamoDbConfigurationSource(AWSCredentialsProvider credentialsProvider, ClientConfiguration clientConfiguration) { - super(credentialsProvider, clientConfiguration); - } - - public DynamoDbConfigurationSource(AmazonDynamoDB dbClient) { + public DynamoDbConfigurationSource(DynamoDbClient dbClient) { super(dbClient); } @@ -75,15 +45,16 @@ protected synchronized Map loadPropertiesFromTable(String table) Map propertyMap = new HashMap(); Map lastKeysEvaluated = null; do { - ScanRequest scanRequest = new ScanRequest() - .withTableName(table) - .withExclusiveStartKey(lastKeysEvaluated); - ScanResult result = dbScanWithThroughputBackOff(scanRequest); - for (Map item : result.getItems()) { - propertyMap.put(item.get(keyAttributeName.get()).getS(), item.get(valueAttributeName.get()).getS()); + ScanRequest scanRequest = ScanRequest.builder() + .tableName(table) + .exclusiveStartKey(lastKeysEvaluated) + .build(); + ScanResponse result = dbScanWithThroughputBackOff(scanRequest); + for (Map item : result.items()) { + propertyMap.put(item.get(keyAttributeName.get()).s(), item.get(valueAttributeName.get()).s()); } - lastKeysEvaluated = result.getLastEvaluatedKey(); - } while (lastKeysEvaluated != null); + lastKeysEvaluated = result.lastEvaluatedKey(); + } while (!lastKeysEvaluated.isEmpty()); return propertyMap; } diff --git a/archaius-aws/src/main/java/com/netflix/config/sources/DynamoDbDeploymentContextConfigurationSource.java b/archaius-aws/src/main/java/com/netflix/config/sources/DynamoDbDeploymentContextConfigurationSource.java index e9958785e..bbf3bbc1b 100644 --- a/archaius-aws/src/main/java/com/netflix/config/sources/DynamoDbDeploymentContextConfigurationSource.java +++ b/archaius-aws/src/main/java/com/netflix/config/sources/DynamoDbDeploymentContextConfigurationSource.java @@ -16,7 +16,6 @@ package com.netflix.config.sources; import com.netflix.config.*; -import org.apache.commons.configuration.AbstractConfiguration; import java.util.HashMap; import java.util.Map; diff --git a/archaius-aws/src/main/java/com/netflix/config/sources/DynamoDbDeploymentContextTableCache.java b/archaius-aws/src/main/java/com/netflix/config/sources/DynamoDbDeploymentContextTableCache.java index b6353b8ba..80e4f821e 100644 --- a/archaius-aws/src/main/java/com/netflix/config/sources/DynamoDbDeploymentContextTableCache.java +++ b/archaius-aws/src/main/java/com/netflix/config/sources/DynamoDbDeploymentContextTableCache.java @@ -15,17 +15,16 @@ */ package com.netflix.config.sources; -import com.amazonaws.ClientConfiguration; -import com.amazonaws.auth.AWSCredentials; -import com.amazonaws.auth.AWSCredentialsProvider; -import com.amazonaws.services.dynamodbv2.AmazonDynamoDB; -import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient; -import com.amazonaws.services.dynamodbv2.model.AttributeValue; -import com.amazonaws.services.dynamodbv2.model.ScanRequest; -import com.amazonaws.services.dynamodbv2.model.ScanResult; -import com.netflix.config.*; +import com.netflix.config.DeploymentContext; +import com.netflix.config.DynamicPropertyFactory; +import com.netflix.config.DynamicStringProperty; +import com.netflix.config.PropertyWithDeploymentContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import software.amazon.awssdk.services.dynamodb.DynamoDbClient; +import software.amazon.awssdk.services.dynamodb.model.AttributeValue; +import software.amazon.awssdk.services.dynamodb.model.ScanRequest; +import software.amazon.awssdk.services.dynamodb.model.ScanResponse; import java.util.Collection; import java.util.HashMap; @@ -70,134 +69,11 @@ public class DynamoDbDeploymentContextTableCache extends AbstractDynamoDbConfigu private ScheduledExecutorService executor; private volatile Map cachedTable = new HashMap(); - - public DynamoDbDeploymentContextTableCache() { - this(defaultInitialDelayMillis, defaultDelayMillis); - } - - /** - * @param initialDelayMillis - * @param delayMillis - */ - public DynamoDbDeploymentContextTableCache(int initialDelayMillis, int delayMillis) { - super(); - this.initialDelayMillis = initialDelayMillis; - this.delayMillis = delayMillis; - start(); - } - - /** - * @param clientConfiguration - */ - public DynamoDbDeploymentContextTableCache(ClientConfiguration clientConfiguration) { - this(clientConfiguration, defaultInitialDelayMillis, defaultDelayMillis); - } - - /** - * @param clientConfiguration - * @param initialDelayMillis - * @param delayMillis - */ - public DynamoDbDeploymentContextTableCache(ClientConfiguration clientConfiguration, int initialDelayMillis, int delayMillis) { - super(clientConfiguration); - this.initialDelayMillis = initialDelayMillis; - this.delayMillis = delayMillis; - start(); - } - - /** - * @param credentials - */ - public DynamoDbDeploymentContextTableCache(AWSCredentials credentials) { - this(credentials, defaultInitialDelayMillis, defaultDelayMillis); - } - - /** - * @param credentials - * @param initialDelayMillis - * @param delayMillis - */ - public DynamoDbDeploymentContextTableCache(AWSCredentials credentials, int initialDelayMillis, int delayMillis) { - super(credentials); - this.initialDelayMillis = initialDelayMillis; - this.delayMillis = delayMillis; - start(); - } - - /** - * @param credentials - * @param clientConfiguration - */ - public DynamoDbDeploymentContextTableCache(AWSCredentials credentials, ClientConfiguration clientConfiguration) { - this(credentials, clientConfiguration, defaultInitialDelayMillis, defaultDelayMillis); - } - - /** - * @param credentials - * @param clientConfiguration - * @param initialDelayMillis - * @param delayMillis - */ - public DynamoDbDeploymentContextTableCache(AWSCredentials credentials, ClientConfiguration clientConfiguration, int initialDelayMillis, int delayMillis) { - super(credentials, clientConfiguration); - this.initialDelayMillis = initialDelayMillis; - this.delayMillis = delayMillis; - start(); - } - - /** - * @param credentialsProvider - */ - public DynamoDbDeploymentContextTableCache(AWSCredentialsProvider credentialsProvider) { - this(credentialsProvider, defaultInitialDelayMillis, defaultDelayMillis); - } - - /** - * @param credentialsProvider - * @param initialDelayMillis - * @param delayMillis - */ - public DynamoDbDeploymentContextTableCache(AWSCredentialsProvider credentialsProvider, int initialDelayMillis, int delayMillis) { - super(credentialsProvider); - this.initialDelayMillis = initialDelayMillis; - this.delayMillis = delayMillis; - start(); - } - - /** - * @param credentialsProvider - * @param clientConfiguration - */ - public DynamoDbDeploymentContextTableCache(AWSCredentialsProvider credentialsProvider, ClientConfiguration clientConfiguration) { - this(credentialsProvider, clientConfiguration, defaultInitialDelayMillis, defaultDelayMillis); - } - - /** - * @param credentialsProvider - * @param clientConfiguration - * @param initialDelayMillis - * @param delayMillis - */ - public DynamoDbDeploymentContextTableCache(AWSCredentialsProvider credentialsProvider, ClientConfiguration clientConfiguration, int initialDelayMillis, int delayMillis) { - super(credentialsProvider, clientConfiguration); - this.initialDelayMillis = initialDelayMillis; - this.delayMillis = delayMillis; - start(); - } - - /** - * @param dbClient - */ - public DynamoDbDeploymentContextTableCache(AmazonDynamoDB dbClient) { + public DynamoDbDeploymentContextTableCache(DynamoDbClient dbClient) { this(dbClient, defaultInitialDelayMillis, defaultDelayMillis); } - /** - * @param dbClient - * @param initialDelayMillis - * @param delayMillis - */ - public DynamoDbDeploymentContextTableCache(AmazonDynamoDB dbClient, int initialDelayMillis, int delayMillis) { + public DynamoDbDeploymentContextTableCache(DynamoDbClient dbClient, int initialDelayMillis, int delayMillis) { super(dbClient); this.initialDelayMillis = initialDelayMillis; this.delayMillis = delayMillis; @@ -258,27 +134,28 @@ protected Map loadPropertiesFromTable(Str Map propertyMap = new HashMap(); Map lastKeysEvaluated = null; do { - ScanRequest scanRequest = new ScanRequest() - .withTableName(table) - .withExclusiveStartKey(lastKeysEvaluated); - ScanResult result = dbScanWithThroughputBackOff(scanRequest); - for (Map item : result.getItems()) { - String keyVal = item.get(keyAttributeName.get()).getS(); + ScanRequest scanRequest = ScanRequest.builder() + .tableName(table) + .exclusiveStartKey(lastKeysEvaluated) + .build(); + ScanResponse result = dbScanWithThroughputBackOff(scanRequest); + for (Map item : result.items()) { + String keyVal = item.get(keyAttributeName.get()).s(); //Need to deal with the fact that these attributes might not exist - DeploymentContext.ContextKey contextKey = item.containsKey(contextKeyAttributeName.get()) ? DeploymentContext.ContextKey.valueOf(item.get(contextKeyAttributeName.get()).getS()) : null; - String contextVal = item.containsKey(contextValueAttributeName.get()) ? item.get(contextValueAttributeName.get()).getS() : null; + DeploymentContext.ContextKey contextKey = item.containsKey(contextKeyAttributeName.get()) ? DeploymentContext.ContextKey.valueOf(item.get(contextKeyAttributeName.get()).s()) : null; + String contextVal = item.containsKey(contextValueAttributeName.get()) ? item.get(contextValueAttributeName.get()).s() : null; String key = keyVal + ";" + contextKey + ";" + contextVal; propertyMap.put(key, new PropertyWithDeploymentContext( contextKey, contextVal, keyVal, - item.get(valueAttributeName.get()).getS() + item.get(valueAttributeName.get()).s() )); } - lastKeysEvaluated = result.getLastEvaluatedKey(); - } while (lastKeysEvaluated != null); + lastKeysEvaluated = result.lastEvaluatedKey(); + } while (!lastKeysEvaluated.isEmpty()); return propertyMap; } diff --git a/archaius-aws/src/main/java/com/netflix/config/sources/S3ConfigurationSource.java b/archaius-aws/src/main/java/com/netflix/config/sources/S3ConfigurationSource.java index 1236d06ef..6d83add79 100644 --- a/archaius-aws/src/main/java/com/netflix/config/sources/S3ConfigurationSource.java +++ b/archaius-aws/src/main/java/com/netflix/config/sources/S3ConfigurationSource.java @@ -1,14 +1,14 @@ package com.netflix.config.sources; -import com.amazonaws.AmazonServiceException; -import com.amazonaws.auth.AWSCredentialsProvider; -import com.amazonaws.services.s3.AmazonS3; -import com.amazonaws.services.s3.AmazonS3Client; -import com.amazonaws.services.s3.model.GetObjectRequest; -import com.amazonaws.services.s3.model.S3Object; import com.netflix.config.PollResult; import com.netflix.config.PolledConfigurationSource; +import software.amazon.awssdk.awscore.exception.AwsServiceException; +import software.amazon.awssdk.core.ResponseInputStream; +import software.amazon.awssdk.services.s3.S3Client; +import software.amazon.awssdk.services.s3.model.GetObjectRequest; +import software.amazon.awssdk.services.s3.model.GetObjectResponse; + import java.io.IOException; import java.io.InputStream; import java.util.Collections; @@ -24,50 +24,38 @@ * {@link com.netflix.config.sources.URLConfigurationSource}. * * Poll requests throw exceptions in line with - * {@link com.amazonaws.services.s3.AmazonS3#getObject(GetObjectRequest)} and + * {@link software.amazon.awssdk.services.s3.S3Client#getObject(GetObjectRequest)} and * {@link java.util.Properties#load(InputStream)} for the obvious reasons * (file not found, bad credentials, no network connection, malformed file...) * * @author Michael Tandy */ public class S3ConfigurationSource implements PolledConfigurationSource { - private final AmazonS3 client; + private final S3Client client; private final String bucketName; private final String key; /** - * Create the instance with the specified credentials, bucket and key. - * Uses the default {@link com.amazonaws.services.s3.AmazonS3Client}. - * @param credentialsProvider - * @param bucketName The S3 bucket containing the configuration file. - * @param key The key of the file within that bucket. - */ - public S3ConfigurationSource(AWSCredentialsProvider credentialsProvider, String bucketName, String key) { - this(new AmazonS3Client(credentialsProvider), bucketName, key); - } - - /** - * Create the instance with the provided {@link com.amazonaws.services.s3.AmazonS3}, + * Create the instance with the provided {@link software.amazon.awssdk.services.s3.S3Client}, * bucket and key. Suitable for injecting a custom client for testing, * messing around with endpoints etc. * @param client to be used to retrieve the object. * @param bucketName The S3 bucket containing the configuration file. * @param key The key of the file within that bucket. */ - public S3ConfigurationSource(AmazonS3 client, String bucketName, String key) { + public S3ConfigurationSource(S3Client client, String bucketName, String key) { this.client = client; this.bucketName = bucketName; this.key = key; } @Override - public PollResult poll(boolean initial, Object checkPoint) throws IOException, AmazonServiceException { - GetObjectRequest s3request = new GetObjectRequest(bucketName, key); - InputStream is = null; + public PollResult poll(boolean initial, Object checkPoint) throws IOException, AwsServiceException { + GetObjectRequest s3request = GetObjectRequest.builder() + .bucket(bucketName).key(key).build(); + ResponseInputStream is = null; try { - - S3Object result = client.getObject(s3request); - is = result.getObjectContent(); + is = client.getObject(s3request); Map resultMap = inputStreamToMap(is); return PollResult.createFull(resultMap); diff --git a/archaius-aws/src/test/java/com/netflix/config/sources/DynamoBackedConfigurationIntegrationTest.java b/archaius-aws/src/test/java/com/netflix/config/sources/DynamoBackedConfigurationIntegrationTest.java index c1ee1aa72..ccd893b33 100644 --- a/archaius-aws/src/test/java/com/netflix/config/sources/DynamoBackedConfigurationIntegrationTest.java +++ b/archaius-aws/src/test/java/com/netflix/config/sources/DynamoBackedConfigurationIntegrationTest.java @@ -15,19 +15,14 @@ */ package com.netflix.config.sources; -import com.amazonaws.auth.DefaultAWSCredentialsProviderChain; -import com.amazonaws.services.dynamodbv2.AmazonDynamoDB; -import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient; - -import static com.netflix.config.sources.DynamoDbIntegrationTestHelper.*; - import com.netflix.config.*; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; +import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider; +import software.amazon.awssdk.services.dynamodb.DynamoDbClient; - - +import static com.netflix.config.sources.DynamoDbIntegrationTestHelper.*; import static org.junit.Assert.assertEquals; /** @@ -36,12 +31,12 @@ */ public class DynamoBackedConfigurationIntegrationTest { private static final String tableName = DynamoDbConfigurationSource.defaultTable + "UNITTEST"; - private static AmazonDynamoDB dbClient; + private static DynamoDbClient dbClient; @BeforeClass public static void setUpClass() throws Exception { try { - dbClient = new AmazonDynamoDBClient(new DefaultAWSCredentialsProviderChain().getCredentials()); + dbClient = DynamoDbClient.builder().credentialsProvider(DefaultCredentialsProvider.create()).build(); } catch (Exception e) { e.printStackTrace(); } @@ -57,7 +52,7 @@ public static void tearDownClass() throws Exception { if (dbClient != null) removeTable(dbClient, tableName); } - //@Test + // @Test // disabled as it requires additional setup public void testPropertyChange() throws Exception{ System.setProperty("com.netflix.config.dynamo.tableName", tableName); if (dbClient != null) { diff --git a/archaius-aws/src/test/java/com/netflix/config/sources/DynamoBackedConfigurationTest.java b/archaius-aws/src/test/java/com/netflix/config/sources/DynamoBackedConfigurationTest.java index 594fc4185..a22d1f8bc 100644 --- a/archaius-aws/src/test/java/com/netflix/config/sources/DynamoBackedConfigurationTest.java +++ b/archaius-aws/src/test/java/com/netflix/config/sources/DynamoBackedConfigurationTest.java @@ -15,10 +15,10 @@ */ package com.netflix.config.sources; -import com.amazonaws.services.dynamodbv2.AmazonDynamoDB; -import com.amazonaws.services.dynamodbv2.model.ScanRequest; import com.netflix.config.*; import org.junit.Test; +import software.amazon.awssdk.services.dynamodb.DynamoDbClient; +import software.amazon.awssdk.services.dynamodb.model.ScanRequest; import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.*; @@ -32,7 +32,7 @@ public class DynamoBackedConfigurationTest { @Test public void testPropertyChange() throws Exception { - AmazonDynamoDB mockBasicDbClient = mock(AmazonDynamoDB.class); + DynamoDbClient mockBasicDbClient = mock(DynamoDbClient.class); //3 of the first config to cover: object creation, threadRun at 0 delay, load properties when(mockBasicDbClient.scan(any(ScanRequest.class))).thenReturn(DynamoDbMocks.basicScanResult1, diff --git a/archaius-aws/src/test/java/com/netflix/config/sources/DynamoDbConfigurationSourceIntegrationTest.java b/archaius-aws/src/test/java/com/netflix/config/sources/DynamoDbConfigurationSourceIntegrationTest.java index 4fb2196a1..536dd833a 100644 --- a/archaius-aws/src/test/java/com/netflix/config/sources/DynamoDbConfigurationSourceIntegrationTest.java +++ b/archaius-aws/src/test/java/com/netflix/config/sources/DynamoDbConfigurationSourceIntegrationTest.java @@ -15,17 +15,15 @@ */ package com.netflix.config.sources; -import com.amazonaws.auth.DefaultAWSCredentialsProviderChain; -import com.amazonaws.services.dynamodbv2.AmazonDynamoDB; -import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient; import com.netflix.config.PollResult; - -import static com.netflix.config.sources.DynamoDbIntegrationTestHelper.*; -import static org.junit.Assert.assertEquals; - import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; +import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider; +import software.amazon.awssdk.services.dynamodb.DynamoDbClient; + +import static com.netflix.config.sources.DynamoDbIntegrationTestHelper.*; +import static org.junit.Assert.assertEquals; /** * User: gorzell @@ -33,12 +31,12 @@ */ public class DynamoDbConfigurationSourceIntegrationTest { private static final String tableName = DynamoDbConfigurationSource.defaultTable + "UNITTEST"; - private static AmazonDynamoDB dbClient; + private static DynamoDbClient dbClient; @BeforeClass public static void setUpClass() throws Exception { try { - dbClient = new AmazonDynamoDBClient(new DefaultAWSCredentialsProviderChain().getCredentials()); + dbClient = DynamoDbClient.builder().credentialsProvider(DefaultCredentialsProvider.create()).build(); } catch (Exception e) { e.printStackTrace(); } @@ -54,10 +52,10 @@ public static void tearDownClass() throws Exception { if (dbClient != null) removeTable(dbClient, tableName); } - //@Test + // @Test // disabled as it requires additional setup public void testPoll() throws Exception { if (dbClient != null) { - DynamoDbConfigurationSource testConfigSource = new DynamoDbConfigurationSource(); + DynamoDbConfigurationSource testConfigSource = new DynamoDbConfigurationSource(dbClient); PollResult result = testConfigSource.poll(true, null); assertEquals(3, result.getComplete().size()); assertEquals("val1", result.getComplete().get("test1")); @@ -66,10 +64,10 @@ public void testPoll() throws Exception { } } - //@Test + // @Test // disabled as it requires additional setup public void testUpdate() throws Exception { if (dbClient != null) { - DynamoDbConfigurationSource testConfigSource = new DynamoDbConfigurationSource(); + DynamoDbConfigurationSource testConfigSource = new DynamoDbConfigurationSource(dbClient); PollResult result = testConfigSource.poll(true, null); assertEquals(3, result.getComplete().size()); diff --git a/archaius-aws/src/test/java/com/netflix/config/sources/DynamoDbConfigurationSourceTest.java b/archaius-aws/src/test/java/com/netflix/config/sources/DynamoDbConfigurationSourceTest.java index aadccf435..df7684109 100644 --- a/archaius-aws/src/test/java/com/netflix/config/sources/DynamoDbConfigurationSourceTest.java +++ b/archaius-aws/src/test/java/com/netflix/config/sources/DynamoDbConfigurationSourceTest.java @@ -15,13 +15,10 @@ */ package com.netflix.config.sources; -import com.amazonaws.services.dynamodbv2.AmazonDynamoDB; -import com.amazonaws.services.dynamodbv2.model.ScanRequest; -import com.netflix.config.ConfigurationManager; import com.netflix.config.PollResult; -import org.junit.BeforeClass; -import org.junit.Ignore; import org.junit.Test; +import software.amazon.awssdk.services.dynamodb.DynamoDbClient; +import software.amazon.awssdk.services.dynamodb.model.ScanRequest; import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.*; @@ -36,7 +33,7 @@ public class DynamoDbConfigurationSourceTest { @Test public void testPoll() throws Exception { - AmazonDynamoDB mockBasicDbClient = mock(AmazonDynamoDB.class); + DynamoDbClient mockBasicDbClient = mock(DynamoDbClient.class); when(mockBasicDbClient.scan(any(ScanRequest.class))).thenReturn(DynamoDbMocks.basicScanResult1); DynamoDbConfigurationSource testConfigSource = new DynamoDbConfigurationSource(mockBasicDbClient); @@ -49,7 +46,7 @@ public void testPoll() throws Exception { @Test public void testUpdate() throws Exception { - AmazonDynamoDB mockBasicDbClient = mock(AmazonDynamoDB.class); + DynamoDbClient mockBasicDbClient = mock(DynamoDbClient.class); when(mockBasicDbClient.scan(any(ScanRequest.class))).thenReturn(DynamoDbMocks.basicScanResult1, DynamoDbMocks.basicScanResult2); DynamoDbConfigurationSource testConfigSource = new DynamoDbConfigurationSource(mockBasicDbClient); diff --git a/archaius-aws/src/test/java/com/netflix/config/sources/DynamoDbDeploymentContextConfigurationSourceTest.java b/archaius-aws/src/test/java/com/netflix/config/sources/DynamoDbDeploymentContextConfigurationSourceTest.java index b03bb60da..8458bc07e 100644 --- a/archaius-aws/src/test/java/com/netflix/config/sources/DynamoDbDeploymentContextConfigurationSourceTest.java +++ b/archaius-aws/src/test/java/com/netflix/config/sources/DynamoDbDeploymentContextConfigurationSourceTest.java @@ -15,22 +15,17 @@ */ package com.netflix.config.sources; -import com.netflix.config.ConfigurationBasedDeploymentContext; -import com.netflix.config.ConfigurationManager; -import com.netflix.config.DeploymentContext; -import com.netflix.config.PollResult; -import com.netflix.config.PropertyWithDeploymentContext; +import com.netflix.config.*; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; import java.util.Collection; -import java.util.HashMap; import java.util.LinkedList; -import java.util.Map; import static org.junit.Assert.assertEquals; -import static org.mockito.Mockito.*; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; /** * User: gorzell diff --git a/archaius-aws/src/test/java/com/netflix/config/sources/DynamoDbDeploymentContextTableCacheTest.java b/archaius-aws/src/test/java/com/netflix/config/sources/DynamoDbDeploymentContextTableCacheTest.java index 3096bc2e2..ddd49882c 100644 --- a/archaius-aws/src/test/java/com/netflix/config/sources/DynamoDbDeploymentContextTableCacheTest.java +++ b/archaius-aws/src/test/java/com/netflix/config/sources/DynamoDbDeploymentContextTableCacheTest.java @@ -15,11 +15,11 @@ */ package com.netflix.config.sources; -import com.amazonaws.services.dynamodbv2.AmazonDynamoDB; -import com.amazonaws.services.dynamodbv2.model.ScanRequest; import com.netflix.config.DeploymentContext; import com.netflix.config.PropertyWithDeploymentContext; import org.junit.Test; +import software.amazon.awssdk.services.dynamodb.DynamoDbClient; +import software.amazon.awssdk.services.dynamodb.model.ScanRequest; import java.util.Collection; @@ -55,7 +55,7 @@ public class DynamoDbDeploymentContextTableCacheTest { @Test public void testPoll() throws Exception { - AmazonDynamoDB mockContextDbClient = mock(AmazonDynamoDB.class); + DynamoDbClient mockContextDbClient = mock(DynamoDbClient.class); when(mockContextDbClient.scan(any(ScanRequest.class))).thenReturn(DynamoDbMocks.contextScanResult1, DynamoDbMocks.contextScanResult2); diff --git a/archaius-aws/src/test/java/com/netflix/config/sources/DynamoDbIntegrationTestHelper.java b/archaius-aws/src/test/java/com/netflix/config/sources/DynamoDbIntegrationTestHelper.java index 6a4e84c09..726bbefb5 100644 --- a/archaius-aws/src/test/java/com/netflix/config/sources/DynamoDbIntegrationTestHelper.java +++ b/archaius-aws/src/test/java/com/netflix/config/sources/DynamoDbIntegrationTestHelper.java @@ -15,8 +15,8 @@ */ package com.netflix.config.sources; -import com.amazonaws.services.dynamodbv2.AmazonDynamoDB; -import com.amazonaws.services.dynamodbv2.model.*; +import software.amazon.awssdk.services.dynamodb.DynamoDbClient; +import software.amazon.awssdk.services.dynamodb.model.*; import java.util.ArrayList; import java.util.HashMap; @@ -25,85 +25,85 @@ public class DynamoDbIntegrationTestHelper { - static void createTable(AmazonDynamoDB dbClient, String tableName) throws InterruptedException { + static void createTable(DynamoDbClient dbClient, String tableName) throws InterruptedException { //TODO check to make sure the table isn't being created or deleted. - KeySchemaElement hashKey = new KeySchemaElement() - .withAttributeName(DynamoDbConfigurationSource.defaultKeyAttribute).withKeyType(KeyType.HASH); + KeySchemaElement hashKey = KeySchemaElement.builder() + .attributeName(DynamoDbConfigurationSource.defaultKeyAttribute) + .keyType(KeyType.HASH) + .build(); - ProvisionedThroughput provisionedThroughput = new ProvisionedThroughput() - .withReadCapacityUnits(1L) - .withWriteCapacityUnits(1L); + ProvisionedThroughput provisionedThroughput = ProvisionedThroughput.builder() + .readCapacityUnits(1L) + .writeCapacityUnits(1L) + .build(); - dbClient.createTable(new CreateTableRequest().withTableName(tableName) - .withKeySchema(hashKey).withProvisionedThroughput(provisionedThroughput)); + dbClient.createTable(CreateTableRequest.builder().tableName(tableName) + .keySchema(hashKey).provisionedThroughput(provisionedThroughput).build()); - while (!dbClient.describeTable(new DescribeTableRequest().withTableName(tableName)).getTable().getTableStatus().equalsIgnoreCase("active")) { + while (!dbClient.describeTable(DescribeTableRequest.builder().tableName(tableName).build()).table().tableStatus().name().equalsIgnoreCase("active")) { Thread.sleep(10000); } } - static void addElements(AmazonDynamoDB dbClient, String tableName) { + static void addElements(DynamoDbClient dbClient, String tableName) { Map> requestMap = new HashMap>(1); List writeList = new ArrayList(3); Map item1 = new HashMap(1); - item1.put(DynamoDbConfigurationSource.defaultKeyAttribute, new AttributeValue().withS("test1")); - item1.put(DynamoDbConfigurationSource.defaultValueAttribute, new AttributeValue().withS("val1")); - writeList.add(new WriteRequest().withPutRequest(new PutRequest().withItem(item1))); + item1.put(DynamoDbConfigurationSource.defaultKeyAttribute, AttributeValue.builder().s("test1").build()); + item1.put(DynamoDbConfigurationSource.defaultValueAttribute, AttributeValue.builder().s("val1").build()); + writeList.add(WriteRequest.builder().putRequest(PutRequest.builder().item(item1).build()).build()); HashMap item2 = new HashMap(1); - item2.put(DynamoDbConfigurationSource.defaultKeyAttribute, new AttributeValue().withS("test2")); - item2.put(DynamoDbConfigurationSource.defaultValueAttribute, new AttributeValue().withS("val2")); - writeList.add(new WriteRequest().withPutRequest(new PutRequest().withItem(item2))); + item2.put(DynamoDbConfigurationSource.defaultKeyAttribute, AttributeValue.builder().s("test2").build()); + item2.put(DynamoDbConfigurationSource.defaultValueAttribute, AttributeValue.builder().s("val2").build()); + writeList.add(WriteRequest.builder().putRequest(PutRequest.builder().item(item2).build()).build()); HashMap item3 = new HashMap(1); - item3.put(DynamoDbConfigurationSource.defaultKeyAttribute, new AttributeValue().withS("test3")); - item3.put(DynamoDbConfigurationSource.defaultValueAttribute, new AttributeValue().withS("val3")); - writeList.add(new WriteRequest().withPutRequest(new PutRequest().withItem(item3))); + item3.put(DynamoDbConfigurationSource.defaultKeyAttribute, AttributeValue.builder().s("test3").build()); + item3.put(DynamoDbConfigurationSource.defaultValueAttribute, AttributeValue.builder().s("val3").build()); + writeList.add(WriteRequest.builder().putRequest(PutRequest.builder().item(item3).build()).build()); requestMap.put(tableName, writeList); - BatchWriteItemRequest request = new BatchWriteItemRequest().withRequestItems(requestMap); + BatchWriteItemRequest request = BatchWriteItemRequest.builder().requestItems(requestMap).build(); dbClient.batchWriteItem(request); } - static void updateValues(AmazonDynamoDB dbClient, String tableName) { + static void updateValues(DynamoDbClient dbClient, String tableName) { Map key1 = new HashMap(1); - key1.put("test1", new AttributeValue().withS("HASH")); + key1.put("test1", AttributeValue.builder().s("HASH").build()); Map item1 = new HashMap(1); - item1.put(DynamoDbConfigurationSource.defaultValueAttribute, new AttributeValueUpdate() - .withAction(AttributeAction.PUT).withValue(new AttributeValue().withS("vala"))); + item1.put(DynamoDbConfigurationSource.defaultValueAttribute, AttributeValueUpdate.builder() + .action(AttributeAction.PUT).value(AttributeValue.builder().s("vala").build()).build()); - dbClient.updateItem(new UpdateItemRequest().withTableName(tableName). - withKey(key1).withAttributeUpdates(item1)); + dbClient.updateItem(UpdateItemRequest.builder().tableName(tableName).key(key1).attributeUpdates(item1).build()); Map key2 = new HashMap(1); - key2.put("test2", new AttributeValue().withS("HASH")); + key2.put("test2", AttributeValue.builder().s("HASH").build()); HashMap item2 = new HashMap(1); - item2.put(DynamoDbConfigurationSource.defaultValueAttribute, new AttributeValueUpdate() - .withAction(AttributeAction.PUT).withValue(new AttributeValue().withS("valb"))); + item2.put(DynamoDbConfigurationSource.defaultValueAttribute, AttributeValueUpdate.builder() + .action(AttributeAction.PUT).value(AttributeValue.builder().s("valb").build()).build()); - dbClient.updateItem(new UpdateItemRequest().withTableName(tableName). - withKey(key2).withAttributeUpdates(item2)); + dbClient.updateItem(UpdateItemRequest.builder().tableName(tableName).key(key2).attributeUpdates(item2).build()); Map key3 = new HashMap(1); - key3.put("test3", new AttributeValue().withS("HASH")); + key3.put("test3", AttributeValue.builder().s("HASH").build()); HashMap item3 = new HashMap(1); - item3.put(DynamoDbConfigurationSource.defaultValueAttribute, new AttributeValueUpdate() - .withAction(AttributeAction.PUT).withValue(new AttributeValue().withS("valc"))); + item3.put(DynamoDbConfigurationSource.defaultValueAttribute, AttributeValueUpdate.builder() + .action(AttributeAction.PUT).value(AttributeValue.builder().s("valc").build()).build()); - dbClient.updateItem(new UpdateItemRequest().withTableName(tableName). - withKey(key3).withAttributeUpdates(item3)); + dbClient.updateItem(UpdateItemRequest.builder().tableName(tableName).key(key3).attributeUpdates(item3).build()); } - static void removeTable(AmazonDynamoDB dbClient, String tableName) { + static void removeTable(DynamoDbClient dbClient, String tableName) { //TODO check to make sure the table isn't being created or deleted. if (dbClient != null) { - dbClient.deleteTable(new DeleteTableRequest().withTableName(tableName)); + dbClient.deleteTable(DeleteTableRequest.builder().tableName(tableName).build()); } } } diff --git a/archaius-aws/src/test/java/com/netflix/config/sources/DynamoDbMocks.java b/archaius-aws/src/test/java/com/netflix/config/sources/DynamoDbMocks.java index b098572fb..8637dcd5a 100644 --- a/archaius-aws/src/test/java/com/netflix/config/sources/DynamoDbMocks.java +++ b/archaius-aws/src/test/java/com/netflix/config/sources/DynamoDbMocks.java @@ -15,8 +15,8 @@ */ package com.netflix.config.sources; -import com.amazonaws.services.dynamodbv2.model.AttributeValue; -import com.amazonaws.services.dynamodbv2.model.ScanResult; +import software.amazon.awssdk.services.dynamodb.model.AttributeValue; +import software.amazon.awssdk.services.dynamodb.model.ScanResponse; import java.util.Collection; import java.util.HashMap; @@ -38,65 +38,65 @@ public class DynamoDbMocks { public static final Collection> basicResultValues1 = new LinkedList>(); public static final Collection> basicResultValues2 = new LinkedList>(); - public static final ScanResult basicScanResult1; - public static final ScanResult basicScanResult2; + public static final ScanResponse basicScanResult1; + public static final ScanResponse basicScanResult2; public static final Collection> contextResultValues1 = new LinkedList>(); public static final Collection> contextResultValues2 = new LinkedList>(); - public static final ScanResult contextScanResult1; - public static final ScanResult contextScanResult2; + public static final ScanResponse contextScanResult1; + public static final ScanResponse contextScanResult2; static { //Basic results config Map basicRow1 = new HashMap(); - basicRow1.put(defaultKeyAttribute, new AttributeValue().withS("foo")); - basicRow1.put(defaultValueAttribute, new AttributeValue().withS("bar")); + basicRow1.put(defaultKeyAttribute, AttributeValue.builder().s("foo").build()); + basicRow1.put(defaultValueAttribute, AttributeValue.builder().s("bar").build()); basicResultValues1.add(basicRow1); Map basicRow2 = new HashMap(); - basicRow2.put(defaultKeyAttribute, new AttributeValue().withS("goo")); - basicRow2.put(defaultValueAttribute, new AttributeValue().withS("goo")); + basicRow2.put(defaultKeyAttribute, AttributeValue.builder().s("goo").build()); + basicRow2.put(defaultValueAttribute, AttributeValue.builder().s("goo").build()); basicResultValues1.add(basicRow2); Map basicRow3 = new HashMap(); - basicRow3.put(defaultKeyAttribute, new AttributeValue().withS("boo")); - basicRow3.put(defaultValueAttribute, new AttributeValue().withS("who")); + basicRow3.put(defaultKeyAttribute, AttributeValue.builder().s("boo").build()); + basicRow3.put(defaultValueAttribute, AttributeValue.builder().s("who").build()); basicResultValues1.add(basicRow3); //Result2 Map updatedBasicRow = new HashMap(); - updatedBasicRow.put(defaultKeyAttribute, new AttributeValue().withS("goo")); - updatedBasicRow.put(defaultValueAttribute, new AttributeValue().withS("foo")); + updatedBasicRow.put(defaultKeyAttribute, AttributeValue.builder().s("goo").build()); + updatedBasicRow.put(defaultValueAttribute, AttributeValue.builder().s("foo").build()); basicResultValues2.add(updatedBasicRow); basicResultValues2.add(basicRow1); basicResultValues2.add(updatedBasicRow); basicResultValues2.add(basicRow3); - basicScanResult1 = new ScanResult().withItems(basicResultValues1).withLastEvaluatedKey(null); - basicScanResult2 = new ScanResult().withItems(basicResultValues2).withLastEvaluatedKey(null); + basicScanResult1 = ScanResponse.builder().items(basicResultValues1).lastEvaluatedKey(null).build(); + basicScanResult2 = ScanResponse.builder().items(basicResultValues2).lastEvaluatedKey(null).build(); //DeploymentContext results config Map contextRow1 = new HashMap(); - contextRow1.put(defaultKeyAttribute, new AttributeValue().withS("foo")); - contextRow1.put(defaultValueAttribute, new AttributeValue().withS("bar")); - contextRow1.put(defaultContextKeyAttribute, new AttributeValue().withS("environment")); - contextRow1.put(defaultContextValueAttribute, new AttributeValue().withS("test")); + contextRow1.put(defaultKeyAttribute, AttributeValue.builder().s("foo").build()); + contextRow1.put(defaultValueAttribute, AttributeValue.builder().s("bar").build()); + contextRow1.put(defaultContextKeyAttribute, AttributeValue.builder().s("environment").build()); + contextRow1.put(defaultContextValueAttribute, AttributeValue.builder().s("test").build()); contextResultValues1.add(contextRow1); Map contextRow2 = new HashMap(); - contextRow2.put(defaultKeyAttribute, new AttributeValue().withS("goo")); - contextRow2.put(defaultValueAttribute, new AttributeValue().withS("goo")); - contextRow2.put(defaultContextKeyAttribute, new AttributeValue().withS("environment")); - contextRow2.put(defaultContextValueAttribute, new AttributeValue().withS("test")); + contextRow2.put(defaultKeyAttribute, AttributeValue.builder().s("goo").build()); + contextRow2.put(defaultValueAttribute, AttributeValue.builder().s("goo").build()); + contextRow2.put(defaultContextKeyAttribute, AttributeValue.builder().s("environment").build()); + contextRow2.put(defaultContextValueAttribute, AttributeValue.builder().s("test").build()); contextResultValues1.add(contextRow2); Map contextRow3 = new HashMap(); - contextRow3.put(defaultKeyAttribute, new AttributeValue().withS("boo")); - contextRow3.put(defaultValueAttribute, new AttributeValue().withS("who")); - contextRow3.put(defaultContextKeyAttribute, new AttributeValue().withS("environment")); - contextRow3.put(defaultContextValueAttribute, new AttributeValue().withS("test")); + contextRow3.put(defaultKeyAttribute, AttributeValue.builder().s("boo").build()); + contextRow3.put(defaultValueAttribute, AttributeValue.builder().s("who").build()); + contextRow3.put(defaultContextKeyAttribute, AttributeValue.builder().s("environment").build()); + contextRow3.put(defaultContextValueAttribute, AttributeValue.builder().s("test").build()); contextResultValues1.add(contextRow3); contextResultValues1.add(basicRow1); @@ -106,23 +106,23 @@ public class DynamoDbMocks { contextResultValues2.add(contextRow3); Map contextRow4 = new HashMap(); - contextRow4.put(defaultKeyAttribute, new AttributeValue().withS("goo")); - contextRow4.put(defaultValueAttribute, new AttributeValue().withS("foo")); - contextRow4.put(defaultContextKeyAttribute, new AttributeValue().withS("environment")); - contextRow4.put(defaultContextValueAttribute, new AttributeValue().withS("prod")); + contextRow4.put(defaultKeyAttribute, AttributeValue.builder().s("goo").build()); + contextRow4.put(defaultValueAttribute, AttributeValue.builder().s("foo").build()); + contextRow4.put(defaultContextKeyAttribute, AttributeValue.builder().s("environment").build()); + contextRow4.put(defaultContextValueAttribute, AttributeValue.builder().s("prod").build()); contextResultValues2.add(contextRow4); Map updatedContextRow = new HashMap(); - updatedContextRow.put(defaultKeyAttribute, new AttributeValue().withS("goo")); - updatedContextRow.put(defaultValueAttribute, new AttributeValue().withS("foo")); - updatedContextRow.put(defaultContextKeyAttribute, new AttributeValue().withS("environment")); - updatedContextRow.put(defaultContextValueAttribute, new AttributeValue().withS("test")); + updatedContextRow.put(defaultKeyAttribute, AttributeValue.builder().s("goo").build()); + updatedContextRow.put(defaultValueAttribute, AttributeValue.builder().s("foo").build()); + updatedContextRow.put(defaultContextKeyAttribute, AttributeValue.builder().s("environment").build()); + updatedContextRow.put(defaultContextValueAttribute, AttributeValue.builder().s("test").build()); contextResultValues2.add(updatedContextRow); contextResultValues2.add(basicRow1); //Create results from initialized values - contextScanResult1 = new ScanResult().withItems(contextResultValues1); - contextScanResult2 = new ScanResult().withItems(contextResultValues2); + contextScanResult1 = ScanResponse.builder().items(contextResultValues1).lastEvaluatedKey(null).build(); + contextScanResult2 = ScanResponse.builder().items(contextResultValues2).lastEvaluatedKey(null).build(); } } diff --git a/archaius-aws/src/test/java/com/netflix/config/sources/S3ConfigurationSourceTest.java b/archaius-aws/src/test/java/com/netflix/config/sources/S3ConfigurationSourceTest.java index 0790c8c8e..b89446756 100644 --- a/archaius-aws/src/test/java/com/netflix/config/sources/S3ConfigurationSourceTest.java +++ b/archaius-aws/src/test/java/com/netflix/config/sources/S3ConfigurationSourceTest.java @@ -1,26 +1,29 @@ package com.netflix.config.sources; -import com.amazonaws.AmazonServiceException; -import com.amazonaws.auth.AnonymousAWSCredentials; -import com.amazonaws.internal.StaticCredentialsProvider; -import com.amazonaws.services.s3.AmazonS3Client; -import com.amazonaws.services.s3.S3ClientOptions; import com.netflix.config.PollResult; import com.sun.net.httpserver.HttpExchange; import com.sun.net.httpserver.HttpHandler; import com.sun.net.httpserver.HttpServer; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import software.amazon.awssdk.auth.credentials.AnonymousCredentialsProvider; +import software.amazon.awssdk.awscore.exception.AwsServiceException; +import software.amazon.awssdk.regions.Region; +import software.amazon.awssdk.services.s3.S3Client; + import java.io.IOException; import java.net.HttpURLConnection; import java.net.InetSocketAddress; +import java.net.URI; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; -import org.junit.After; -import static org.junit.Assert.*; -import org.junit.Before; -import org.junit.Test; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; public class S3ConfigurationSourceTest { @@ -28,7 +31,7 @@ public class S3ConfigurationSourceTest { final static Object CHECK_POINT = null; HttpServer fakeS3; - AmazonS3Client client; + S3Client client; public S3ConfigurationSourceTest() { } @@ -36,9 +39,12 @@ public S3ConfigurationSourceTest() { @Before public void setup() throws Exception { fakeS3 = createHttpServer(); - client = new AmazonS3Client(new StaticCredentialsProvider(new AnonymousAWSCredentials())); - client.setS3ClientOptions(new S3ClientOptions().withPathStyleAccess(true)); - client.setEndpoint("http://localhost:8069"); + client = S3Client.builder() + .credentialsProvider(AnonymousCredentialsProvider.create()) + .forcePathStyle(true) + .region(Region.US_EAST_1) + .endpointOverride(new URI("http://localhost:8069")) + .build(); } @After @@ -56,7 +62,7 @@ public void testPoll_shouldLoadSomeData() throws Exception { assertEquals(1,result.getComplete().size()); } - @Test(expected=AmazonServiceException.class) + @Test(expected = AwsServiceException.class) public void testPoll_fileNotFound() throws Exception { S3ConfigurationSource instance = new S3ConfigurationSource(client, "bucketname", "404.txt"); PollResult result = instance.poll(INITIAL, CHECK_POINT); @@ -106,5 +112,4 @@ public void handle(HttpExchange exchange) throws IOException { httpServer.start(); return httpServer; } - } diff --git a/build.gradle b/build.gradle index 87b10f7a8..331c807b6 100755 --- a/build.gradle +++ b/build.gradle @@ -12,8 +12,8 @@ subprojects { apply plugin: 'java' apply plugin: 'maven-publish' - sourceCompatibility = 1.6 - targetCompatibility = 1.6 + sourceCompatibility = 1.8 + targetCompatibility = 1.8 repositories { jcenter() @@ -42,7 +42,6 @@ subprojects { tasks.withType(Test) { forkEvery = 1 } test { - jvmArgs += [ "-XX:MaxPermSize=512m" ] // for archaius-scala maxHeapSize = '2g' // or however much memory the tests need testLogging { events 'started', 'failed', 'passed', 'skipped' @@ -94,9 +93,8 @@ project(':archaius-core') { project(':archaius-aws') { dependencies { compile project(':archaius-core') - compile 'com.amazonaws:aws-java-sdk-core:1.9.3' - compile 'com.amazonaws:aws-java-sdk-dynamodb:1.9.3' - compile 'com.amazonaws:aws-java-sdk-s3:1.9.3' + compile("software.amazon.awssdk:dynamodb:2.29.17") + compile("software.amazon.awssdk:s3:2.29.17") testCompile 'junit:junit:4.11' testCompile 'org.mockito:mockito-all:1.9.5' testCompile 'org.slf4j:slf4j-simple:1.6.4'