diff --git a/pom.xml b/pom.xml
index 0522c72..fdb64a1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -88,6 +88,12 @@
aws-java-sdk
${aws.sdk.version}
provided
+
+
+ com.amazonaws
+ aws-java-sdk-kinesisvideo
+
+
com.amazonaws
@@ -115,6 +121,28 @@
${aws.sdk.version}
+
+
+ software.amazon.awssdk
+ sns
+ 2.13.36
+
+
+ software.amazon.awssdk
+ sqs
+ 2.13.36
+
+
+ software.amazon.awssdk
+ kinesis
+ 2.13.36
+
+
+ software.amazon.awssdk
+ netty-nio-client
+ 2.13.36
+
+
diff --git a/src/main/java/cloud/localstack/CommonUtils.java b/src/main/java/cloud/localstack/CommonUtils.java
new file mode 100644
index 0000000..8ace1dc
--- /dev/null
+++ b/src/main/java/cloud/localstack/CommonUtils.java
@@ -0,0 +1,102 @@
+package cloud.localstack;
+
+import cloud.localstack.Constants;
+import cloud.localstack.Localstack;
+
+import java.io.*;
+import java.nio.file.*;
+import java.util.*;
+import java.lang.reflect.Field;
+import java.nio.channels.FileChannel;
+import java.util.stream.Stream;
+
+/**
+ * Common utility methods
+ */
+public class CommonUtils {
+
+ private static final String[] EXCLUDED_DIRECTORIES = {
+ ".github", ".git", ".idea", ".venv", "target", "node_modules"
+ };
+
+ public static void disableSslCertChecking() {
+ System.setProperty("com.amazonaws.sdk.disableCertChecking", "true");
+ }
+
+ public static void setEnv(String key, String value) {
+ Map newEnv = new HashMap(System.getenv());
+ newEnv.put(key, value);
+ setEnv(newEnv);
+ }
+
+ protected static void setEnv(Map newEnv) {
+ try {
+ Class> processEnvironmentClass = Class.forName("java.lang.ProcessEnvironment");
+ Field theEnvironmentField = processEnvironmentClass.getDeclaredField("theEnvironment");
+ theEnvironmentField.setAccessible(true);
+ Map env = (Map) theEnvironmentField.get(null);
+ env.putAll(newEnv);
+ Field theCaseInsensitiveEnvironmentField = processEnvironmentClass
+ .getDeclaredField("theCaseInsensitiveEnvironment");
+ theCaseInsensitiveEnvironmentField.setAccessible(true);
+ Map cienv = (Map) theCaseInsensitiveEnvironmentField.get(null);
+ cienv.putAll(newEnv);
+ } catch (NoSuchFieldException e) {
+ try {
+ Class[] classes = Collections.class.getDeclaredClasses();
+ Map env = System.getenv();
+ for (Class cl : classes) {
+ if ("java.util.Collections$UnmodifiableMap".equals(cl.getName())) {
+ Field field = cl.getDeclaredField("m");
+ field.setAccessible(true);
+ Object obj = field.get(env);
+ Map map = (Map) obj;
+ map.clear();
+ map.putAll(newEnv);
+ }
+ }
+ } catch (Exception e2) {
+ e2.printStackTrace();
+ }
+ } catch (Exception e1) {
+ e1.printStackTrace();
+ }
+ }
+
+ public static void copyFolder(Path src, Path dest) throws IOException {
+ try(Stream stream = Files.walk(src)) {
+ stream.forEach(source -> {
+ boolean isExcluded = Arrays.stream(EXCLUDED_DIRECTORIES)
+ .anyMatch( excluded -> source.toAbsolutePath().toString().contains(excluded));
+ if (!isExcluded) {
+ copy(source, dest.resolve(src.relativize(source)));
+ }
+ });
+ }
+ }
+
+ public static void copy(Path source, Path dest) {
+ try {
+ CopyOption[] options = new CopyOption[] {StandardCopyOption.COPY_ATTRIBUTES, StandardCopyOption.REPLACE_EXISTING};
+ if(Files.isDirectory(dest)) {
+ // continue without copying
+ return;
+ }
+ if (Files.exists(dest)) {
+ try(FileChannel sourceFile = FileChannel.open(source)) {
+ try (FileChannel destFile = FileChannel.open(dest)) {
+ if (!Files.getLastModifiedTime(source).equals(Files.getLastModifiedTime(dest))
+ || sourceFile.size() != destFile.size()
+ ) {
+ Files.copy(source, dest, options);
+ }
+ }
+ }
+ } else {
+ Files.copy(source, dest, options);
+ }
+ } catch (Exception e) {
+ throw new RuntimeException(e.getMessage(), e);
+ }
+ }
+}
diff --git a/src/main/java/cloud/localstack/Constants.java b/src/main/java/cloud/localstack/Constants.java
index ba85435..8093a7d 100644
--- a/src/main/java/cloud/localstack/Constants.java
+++ b/src/main/java/cloud/localstack/Constants.java
@@ -8,6 +8,10 @@ public class Constants {
public static final String LOCALHOST_DOMAIN_NAME = "localhost.localstack.cloud";
+ public static final String DEFAULT_REGION = "us-east-1";
+ public static final String TEST_ACCESS_KEY = "test";
+ public static final String TEST_SECRET_KEY = "test";
+
static {
DEFAULT_PORTS.put("apigateway", 4567);
DEFAULT_PORTS.put("kinesis", 4568);
@@ -34,4 +38,5 @@ public class Constants {
DEFAULT_PORTS.put("ec2", 4597);
DEFAULT_PORTS.put("kms", 4599);
}
+
}
diff --git a/src/main/java/cloud/localstack/Localstack.java b/src/main/java/cloud/localstack/Localstack.java
index ca1fd6a..c9d7723 100644
--- a/src/main/java/cloud/localstack/Localstack.java
+++ b/src/main/java/cloud/localstack/Localstack.java
@@ -2,6 +2,7 @@
import cloud.localstack.Constants;
import cloud.localstack.ServiceName;
+import cloud.localstack.CommonUtils;
import cloud.localstack.docker.*;
import cloud.localstack.docker.command.*;
import cloud.localstack.docker.annotation.LocalstackDockerConfiguration;
@@ -54,7 +55,7 @@ public class Localstack {
static {
// make sure we avoid any errors related to locally generated SSL certificates
- TestUtils.disableSslCertChecking();
+ CommonUtils.disableSslCertChecking();
}
private Localstack() { }
@@ -237,6 +238,6 @@ public static boolean isEnvConfigSet(String configName) {
}
public static String getDefaultRegion() {
- return TestUtils.DEFAULT_REGION;
+ return Constants.DEFAULT_REGION;
}
}
diff --git a/src/main/java/cloud/localstack/TestUtils.java b/src/main/java/cloud/localstack/awssdkv1/TestUtils.java
similarity index 69%
rename from src/main/java/cloud/localstack/TestUtils.java
rename to src/main/java/cloud/localstack/awssdkv1/TestUtils.java
index 4b37a76..2ccf388 100644
--- a/src/main/java/cloud/localstack/TestUtils.java
+++ b/src/main/java/cloud/localstack/awssdkv1/TestUtils.java
@@ -1,4 +1,4 @@
-package cloud.localstack;
+package cloud.localstack.awssdkv1;
import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.AWSCredentialsProvider;
@@ -33,36 +33,16 @@
import com.amazonaws.services.secretsmanager.AWSSecretsManagerClientBuilder;
import com.amazonaws.services.sqs.AmazonSQS;
import com.amazonaws.services.sqs.AmazonSQSClientBuilder;
-import java.io.IOException;
-import java.lang.reflect.Field;
-import java.nio.channels.FileChannel;
-import java.nio.file.CopyOption;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.StandardCopyOption;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.stream.Stream;
+
+import cloud.localstack.Constants;
+import cloud.localstack.Localstack;
+import cloud.localstack.CommonUtils;
@SuppressWarnings("all")
public class TestUtils {
- public static final String DEFAULT_REGION = "us-east-1";
- public static final String TEST_ACCESS_KEY = "test";
- public static final String TEST_SECRET_KEY = "test";
- public static final AWSCredentials TEST_CREDENTIALS = new BasicAWSCredentials(TEST_ACCESS_KEY, TEST_SECRET_KEY);
-
- private static final String[] EXCLUDED_DIRECTORIES = {
- ".github", ".git", ".idea", ".venv", "target", "node_modules"
- };
-
- public static void setEnv(String key, String value) {
- Map newEnv = new HashMap(System.getenv());
- newEnv.put(key, value);
- setEnv(newEnv);
- }
+ public static final AWSCredentials TEST_CREDENTIALS = new BasicAWSCredentials(
+ Constants.TEST_ACCESS_KEY, Constants.TEST_SECRET_KEY);
public static AmazonSQS getClientSQS() {
return getClientSQS(null);
@@ -227,87 +207,16 @@ protected static AwsClientBuilder.EndpointConfiguration getEndpointConfiguration
return getEndpointConfiguration(Localstack.INSTANCE.getEndpointStepFunctions());
}
- protected static void setEnv(Map newEnv) {
- try {
- Class> processEnvironmentClass = Class.forName("java.lang.ProcessEnvironment");
- Field theEnvironmentField = processEnvironmentClass.getDeclaredField("theEnvironment");
- theEnvironmentField.setAccessible(true);
- Map env = (Map) theEnvironmentField.get(null);
- env.putAll(newEnv);
- Field theCaseInsensitiveEnvironmentField = processEnvironmentClass
- .getDeclaredField("theCaseInsensitiveEnvironment");
- theCaseInsensitiveEnvironmentField.setAccessible(true);
- Map cienv = (Map) theCaseInsensitiveEnvironmentField.get(null);
- cienv.putAll(newEnv);
- } catch (NoSuchFieldException e) {
- try {
- Class[] classes = Collections.class.getDeclaredClasses();
- Map env = System.getenv();
- for (Class cl : classes) {
- if ("java.util.Collections$UnmodifiableMap".equals(cl.getName())) {
- Field field = cl.getDeclaredField("m");
- field.setAccessible(true);
- Object obj = field.get(env);
- Map map = (Map) obj;
- map.clear();
- map.putAll(newEnv);
- }
- }
- } catch (Exception e2) {
- e2.printStackTrace();
- }
- } catch (Exception e1) {
- e1.printStackTrace();
- }
- }
-
- public static void disableSslCertChecking() {
- System.setProperty("com.amazonaws.sdk.disableCertChecking", "true");
- }
-
- public static void copyFolder(Path src, Path dest) throws IOException {
- try(Stream stream = Files.walk(src)) {
- stream.forEach(source -> {
- boolean isExcluded = Arrays.stream(EXCLUDED_DIRECTORIES)
- .anyMatch( excluded -> source.toAbsolutePath().toString().contains(excluded));
- if (!isExcluded) {
- copy(source, dest.resolve(src.relativize(source)));
- }
- });
- }
- }
-
- public static void copy(Path source, Path dest) {
- try {
- CopyOption[] options = new CopyOption[] {StandardCopyOption.COPY_ATTRIBUTES, StandardCopyOption.REPLACE_EXISTING};
- if(Files.isDirectory(dest)) {
- // continue without copying
- return;
- }
- if (Files.exists(dest)) {
- try(FileChannel sourceFile = FileChannel.open(source)) {
- try (FileChannel destFile = FileChannel.open(dest)) {
- if (!Files.getLastModifiedTime(source).equals(Files.getLastModifiedTime(dest))
- || sourceFile.size() != destFile.size()
- ) {
- Files.copy(source, dest, options);
- }
- }
- }
- } else {
- Files.copy(source, dest, options);
- }
- } catch (Exception e) {
- throw new RuntimeException(e.getMessage(), e);
- }
- }
+ /**
+ * UTIL METHODS
+ */
public static AWSCredentialsProvider getCredentialsProvider() {
return new AWSStaticCredentialsProvider(TEST_CREDENTIALS);
}
protected static AwsClientBuilder.EndpointConfiguration getEndpointConfiguration(String endpointURL) {
- return new AwsClientBuilder.EndpointConfiguration(endpointURL, DEFAULT_REGION);
+ return new AwsClientBuilder.EndpointConfiguration(endpointURL, Constants.DEFAULT_REGION);
}
}
diff --git a/src/main/java/cloud/localstack/awssdkv2/TestUtils.java b/src/main/java/cloud/localstack/awssdkv2/TestUtils.java
new file mode 100644
index 0000000..a932527
--- /dev/null
+++ b/src/main/java/cloud/localstack/awssdkv2/TestUtils.java
@@ -0,0 +1,53 @@
+package cloud.localstack.awssdkv2;
+
+import software.amazon.awssdk.regions.Region;
+import software.amazon.awssdk.utils.*;
+import software.amazon.awssdk.http.*;
+import software.amazon.awssdk.services.kinesis.*;
+import software.amazon.awssdk.services.sns.*;
+import software.amazon.awssdk.services.sqs.*;
+import software.amazon.awssdk.http.nio.netty.NettyNioAsyncHttpClient;
+
+import cloud.localstack.Localstack;
+
+import java.net.*;
+
+@SuppressWarnings("all")
+public class TestUtils {
+
+ /**
+ * AWS SDK V2 METHODS
+ */
+
+ public static KinesisAsyncClient getClientKinesisAsyncV2() {
+ return wrapApiClientV2(KinesisAsyncClient.builder(), Localstack.INSTANCE.getEndpointKinesis()).build();
+ }
+
+ public static SqsAsyncClient getClientSQSAsyncV2() {
+ return wrapApiClientV2(SqsAsyncClient.builder(), Localstack.INSTANCE.getEndpointSQS()).build();
+ }
+
+ public static SnsAsyncClient getClientSNSAsyncV2() {
+ return wrapApiClientV2(SnsAsyncClient.builder(), Localstack.INSTANCE.getEndpointSNS()).build();
+ }
+
+ public static T wrapApiClientV2(T builder, String endpointURL) {
+ try {
+ return (T) ((software.amazon.awssdk.awscore.client.builder.AwsClientBuilder)builder
+ .httpClient(NettyNioAsyncHttpClient.builder().buildWithDefaults(
+ AttributeMap.builder().put(
+ SdkHttpConfigurationOption.TRUST_ALL_CERTIFICATES, java.lang.Boolean.TRUE).build())))
+ .credentialsProvider(getCredentialsV2())
+ .region(Region.of(Localstack.INSTANCE.getDefaultRegion()))
+ .endpointOverride(new URI(endpointURL));
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ private static software.amazon.awssdk.auth.credentials.AwsCredentialsProvider getCredentialsV2() throws Exception {
+ return software.amazon.awssdk.auth.credentials.StaticCredentialsProvider.create(
+ software.amazon.awssdk.auth.credentials.AwsBasicCredentials.create("access", "secret"));
+ }
+
+}
diff --git a/src/main/java/cloud/localstack/deprecated/Localstack.java b/src/main/java/cloud/localstack/deprecated/Localstack.java
index 76d9e79..d145b99 100644
--- a/src/main/java/cloud/localstack/deprecated/Localstack.java
+++ b/src/main/java/cloud/localstack/deprecated/Localstack.java
@@ -21,6 +21,7 @@
import cloud.localstack.Constants;
import cloud.localstack.ServiceName;
+import cloud.localstack.CommonUtils;
/**
* Singleton class that automatically downloads, installs, starts,
@@ -385,7 +386,7 @@ public void setupInfrastructure() {
ensureInstallation(true);
// make sure we avoid any errors related to locally generated SSL certificates
- TestUtils.disableSslCertChecking();
+ CommonUtils.disableSslCertChecking();
if (INFRA_STARTED.get() != null) return;
String[] cmd = new String[]{"make", "-C", TMP_INSTALL_DIR, "infra"};
diff --git a/src/main/java/cloud/localstack/deprecated/TestUtils.java b/src/main/java/cloud/localstack/deprecated/TestUtils.java
index 3139763..51d79ab 100644
--- a/src/main/java/cloud/localstack/deprecated/TestUtils.java
+++ b/src/main/java/cloud/localstack/deprecated/TestUtils.java
@@ -38,7 +38,7 @@
import java.util.Map;
import java.util.stream.Stream;
-import static cloud.localstack.TestUtils.getCredentialsProvider;
+import static cloud.localstack.awssdkv1.TestUtils.getCredentialsProvider;
@Deprecated
@SuppressWarnings("all")
diff --git a/src/test/java/cloud/localstack/S3FeaturesTest.java b/src/test/java/cloud/localstack/S3FeaturesTest.java
index 19b36d1..e166be9 100644
--- a/src/test/java/cloud/localstack/S3FeaturesTest.java
+++ b/src/test/java/cloud/localstack/S3FeaturesTest.java
@@ -3,6 +3,9 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
+import cloud.localstack.docker.annotation.LocalstackDockerProperties;
+import cloud.localstack.awssdkv1.TestUtils;
+
import java.io.*;
import java.nio.charset.StandardCharsets;
import java.util.*;
@@ -27,8 +30,6 @@
import com.amazonaws.services.s3.model.*;
import com.amazonaws.services.s3.model.lifecycle.*;
-import cloud.localstack.docker.annotation.LocalstackDockerProperties;
-
@RunWith(LocalstackTestRunner.class)
@LocalstackDockerProperties(services = {"s3"}, ignoreDockerRunErrors=true)
public class S3FeaturesTest {
@@ -71,7 +72,7 @@ public void testHttpsConnection() {
return;
}
- TestUtils.disableSslCertChecking();
+ CommonUtils.disableSslCertChecking();
String bucketName = "test-bucket-https";
diff --git a/src/test/java/cloud/localstack/S3UploadTest.java b/src/test/java/cloud/localstack/S3UploadTest.java
index 2a0d743..036f8ca 100644
--- a/src/test/java/cloud/localstack/S3UploadTest.java
+++ b/src/test/java/cloud/localstack/S3UploadTest.java
@@ -1,5 +1,7 @@
package cloud.localstack;
+import cloud.localstack.awssdkv1.TestUtils;
+
import static org.junit.Assert.assertEquals;
import java.io.ByteArrayInputStream;
diff --git a/src/test/java/cloud/localstack/SNSMessagingTest.java b/src/test/java/cloud/localstack/SNSMessagingTest.java
index 0a5c222..cd51e6e 100644
--- a/src/test/java/cloud/localstack/SNSMessagingTest.java
+++ b/src/test/java/cloud/localstack/SNSMessagingTest.java
@@ -1,6 +1,8 @@
package cloud.localstack;
import cloud.localstack.utils.PromiseAsyncHandler;
+import cloud.localstack.awssdkv1.TestUtils;
+
import com.amazonaws.services.sns.AmazonSNS;
import com.amazonaws.services.sns.AmazonSNSAsync;
import com.amazonaws.services.sns.model.CreateTopicRequest;
@@ -46,4 +48,4 @@ public void testSendMessageAsync() throws Exception {
Assert.assertNotNull(result);
}
-}
\ No newline at end of file
+}
diff --git a/src/test/java/cloud/localstack/SQSMessagingTest.java b/src/test/java/cloud/localstack/SQSMessagingTest.java
index 2c7cfe2..a55774c 100644
--- a/src/test/java/cloud/localstack/SQSMessagingTest.java
+++ b/src/test/java/cloud/localstack/SQSMessagingTest.java
@@ -1,7 +1,10 @@
package cloud.localstack;
+import cloud.localstack.CommonUtils;
import cloud.localstack.utils.PromiseAsyncHandler;
import cloud.localstack.docker.annotation.LocalstackDockerProperties;
+import cloud.localstack.awssdkv1.TestUtils;
+
import com.amazon.sqs.javamessaging.SQSConnection;
import com.amazon.sqs.javamessaging.SQSConnectionFactory;
import com.amazonaws.auth.AWSStaticCredentialsProvider;
@@ -51,7 +54,7 @@ public static void setup() {
/* Disable SSL certificate checks for local testing */
if (Localstack.useSSL()) {
- TestUtils.disableSslCertChecking();
+ CommonUtils.disableSslCertChecking();
}
}
diff --git a/src/test/java/cloud/localstack/awssdkv2/BasicFeaturesSDKV2Test.java b/src/test/java/cloud/localstack/awssdkv2/BasicFeaturesSDKV2Test.java
new file mode 100644
index 0000000..7b5742f
--- /dev/null
+++ b/src/test/java/cloud/localstack/awssdkv2/BasicFeaturesSDKV2Test.java
@@ -0,0 +1,50 @@
+package cloud.localstack.awssdkv2;
+
+import cloud.localstack.awssdkv2.TestUtils;
+import cloud.localstack.LocalstackTestRunner;
+
+import software.amazon.awssdk.core.SdkSystemSetting;
+import software.amazon.awssdk.services.sqs.*;
+import software.amazon.awssdk.services.sqs.model.*;
+import software.amazon.awssdk.services.kinesis.*;
+import software.amazon.awssdk.services.kinesis.model.*;
+import software.amazon.awssdk.auth.credentials.*;
+import software.amazon.awssdk.regions.Region;
+import software.amazon.awssdk.utils.Logger;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.util.*;
+import java.net.*;
+
+@RunWith(LocalstackTestRunner.class)
+public class BasicFeaturesSDKV2Test {
+
+ static {
+ System.setProperty(SdkSystemSetting.CBOR_ENABLED.property(), "false");
+ }
+
+ @Test
+ public void testCreateSqsQueueV2() throws Exception {
+ String queueName = "test-q-2159";
+ CreateQueueRequest request = CreateQueueRequest.builder().queueName(queueName).build();
+ SqsAsyncClient sqsClient = TestUtils.getClientSQSAsyncV2();
+ CreateQueueResponse queue = sqsClient.createQueue(request).get();
+ // TODO fix classpath for v2 and finalize test
+ System.out.println(queue);
+ }
+
+ @Test
+ public void testCreateKinesisStreamV2() throws Exception {
+ String streamName = "test-s-3198";
+ KinesisAsyncClient kinesisClient = TestUtils.getClientKinesisAsyncV2();
+ CreateStreamRequest request = CreateStreamRequest.builder()
+ .streamName(streamName).shardCount(1).build();
+ CreateStreamResponse response = kinesisClient.createStream(request).get();
+ // TODO fix classpath for v2 and finalize test
+ System.out.println(response);
+ }
+
+}
diff --git a/src/test/java/cloud/localstack/awssdkv2/SNSMessagingTest.java b/src/test/java/cloud/localstack/awssdkv2/SNSMessagingTest.java
new file mode 100644
index 0000000..7eb0101
--- /dev/null
+++ b/src/test/java/cloud/localstack/awssdkv2/SNSMessagingTest.java
@@ -0,0 +1,34 @@
+package cloud.localstack.awssdkv2;
+
+import cloud.localstack.LocalstackTestRunner;
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import software.amazon.awssdk.services.sns.SnsAsyncClient;
+import software.amazon.awssdk.services.sns.model.CreateTopicRequest;
+import software.amazon.awssdk.services.sns.model.CreateTopicResponse;
+import software.amazon.awssdk.services.sns.model.PublishRequest;
+import software.amazon.awssdk.services.sns.model.PublishResponse;
+
+import java.util.concurrent.ExecutionException;
+
+/**
+ * Test integration of SNS messaging with LocalStack using SDK v2
+ */
+@RunWith(LocalstackTestRunner.class)
+public class SNSMessagingTest {
+ private static final String TOPIC = "topic";
+
+ @Test
+ public void testSendMessage() throws ExecutionException, InterruptedException {
+ final SnsAsyncClient clientSNS = TestUtils.getClientSNSAsyncV2();
+ CreateTopicResponse createTopicResponse = clientSNS.createTopic(CreateTopicRequest.builder().name(TOPIC).build()).get();
+
+ String topicArn = createTopicResponse.topicArn();
+ Assert.assertNotNull(topicArn);
+ PublishRequest publishRequest = PublishRequest.builder().topicArn(topicArn).subject("test subject").message("message test.").build();
+
+ PublishResponse publishResponse = clientSNS.publish(publishRequest).get();
+ Assert.assertNotNull(publishResponse.messageId());
+ }
+}
diff --git a/src/test/java/cloud/localstack/deprecated/BasicFunctionalityTest.java b/src/test/java/cloud/localstack/deprecated/BasicFunctionalityTest.java
index a9631e8..a0b3353 100644
--- a/src/test/java/cloud/localstack/deprecated/BasicFunctionalityTest.java
+++ b/src/test/java/cloud/localstack/deprecated/BasicFunctionalityTest.java
@@ -1,5 +1,7 @@
package cloud.localstack.deprecated;
+import cloud.localstack.CommonUtils;
+import cloud.localstack.awssdkv1.TestUtils;
import cloud.localstack.utils.LocalTestUtil;
import cloud.localstack.sample.KinesisLambdaHandler;
import cloud.localstack.sample.S3Sample;
@@ -48,7 +50,7 @@
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
-import static cloud.localstack.TestUtils.TEST_CREDENTIALS;
+import static cloud.localstack.awssdkv1.TestUtils.TEST_CREDENTIALS;
/**
* Simple class to test basic functionality and interaction with LocalStack.
@@ -66,10 +68,10 @@ public class BasicFunctionalityTest {
* Need to disable CBOR protocol, see:
* https://github.com/mhart/kinesalite/blob/master/README.md#cbor-protocol-issues-with-the-java-sdk
*/
- TestUtils.setEnv("AWS_CBOR_DISABLE", "1");
+ CommonUtils.setEnv("AWS_CBOR_DISABLE", "1");
/* Disable SSL certificate checks for local testing */
if (Localstack.useSSL()) {
- TestUtils.disableSslCertChecking();
+ CommonUtils.disableSslCertChecking();
}
}
@@ -195,16 +197,7 @@ public void run() {
public void testSQSQueueAttributes() {
// Based on https://github.com/localstack/localstack/issues/1551
- AwsClientBuilder.EndpointConfiguration endpoint = TestUtils.getEndpointConfigurationSQS();
-
- ClientConfiguration cc = new ClientConfiguration();
- cc.setProtocol(Protocol.HTTP);
-
- AmazonSQSAsync sqsAsync = AmazonSQSAsyncClientBuilder.standard()
- .withCredentials(new AWSStaticCredentialsProvider(new BasicAWSCredentials("foo", "foo")))
- .withEndpointConfiguration(endpoint)
- .withClientConfiguration(cc)
- .build();
+ AmazonSQSAsync sqsAsync = TestUtils.getClientSQSAsync();
CreateQueueResult result1 = sqsAsync.createQueue("1551-test");
CreateQueueResult result2 = sqsAsync.createQueue("1551-test-dlq");
diff --git a/src/test/java/cloud/localstack/docker/BasicDockerFunctionalityTest.java b/src/test/java/cloud/localstack/docker/BasicDockerFunctionalityTest.java
index 819f615..fbee251 100644
--- a/src/test/java/cloud/localstack/docker/BasicDockerFunctionalityTest.java
+++ b/src/test/java/cloud/localstack/docker/BasicDockerFunctionalityTest.java
@@ -2,8 +2,10 @@
import cloud.localstack.Localstack;
import cloud.localstack.LocalstackTestRunner;
-import cloud.localstack.TestUtils;
import cloud.localstack.docker.annotation.LocalstackDockerProperties;
+import cloud.localstack.CommonUtils;
+import cloud.localstack.awssdkv1.TestUtils;
+
import com.amazon.sqs.javamessaging.SQSConnection;
import com.amazon.sqs.javamessaging.SQSConnectionFactory;
import com.amazonaws.auth.AWSStaticCredentialsProvider;
@@ -57,7 +59,7 @@
public class BasicDockerFunctionalityTest {
static {
- TestUtils.setEnv("AWS_CBOR_DISABLE", "1");
+ CommonUtils.setEnv("AWS_CBOR_DISABLE", "1");
}
@org.junit.Test
diff --git a/src/test/java/cloud/localstack/docker/DockerOnlySQSFunctionalityTest.java b/src/test/java/cloud/localstack/docker/DockerOnlySQSFunctionalityTest.java
index 2224788..6fad618 100644
--- a/src/test/java/cloud/localstack/docker/DockerOnlySQSFunctionalityTest.java
+++ b/src/test/java/cloud/localstack/docker/DockerOnlySQSFunctionalityTest.java
@@ -1,7 +1,8 @@
package cloud.localstack.docker;
-import cloud.localstack.TestUtils;
import cloud.localstack.Localstack;
+import cloud.localstack.CommonUtils;
+import cloud.localstack.awssdkv1.TestUtils;
import cloud.localstack.docker.LocalstackDockerExtension;
import cloud.localstack.LocalstackTestRunner;
import cloud.localstack.docker.annotation.LocalstackDockerProperties;
@@ -30,7 +31,7 @@
public class DockerOnlySQSFunctionalityTest {
static {
- TestUtils.setEnv("AWS_CBOR_DISABLE", "1");
+ CommonUtils.setEnv("AWS_CBOR_DISABLE", "1");
}
@org.junit.Test
diff --git a/src/test/java/cloud/localstack/docker/LocalstackDockerTest.java b/src/test/java/cloud/localstack/docker/LocalstackDockerTest.java
index 03d6bb7..763ef83 100644
--- a/src/test/java/cloud/localstack/docker/LocalstackDockerTest.java
+++ b/src/test/java/cloud/localstack/docker/LocalstackDockerTest.java
@@ -1,7 +1,7 @@
package cloud.localstack.docker;
import cloud.localstack.Localstack;
-import cloud.localstack.TestUtils;
+import cloud.localstack.awssdkv1.TestUtils;
import cloud.localstack.docker.annotation.LocalstackDockerConfiguration;
import com.amazonaws.SdkClientException;
import com.amazonaws.services.sqs.AmazonSQS;
@@ -58,4 +58,4 @@ public void stop() {
public void tearDown() {
Localstack.INSTANCE.stop();
}
-}
\ No newline at end of file
+}
diff --git a/src/test/java/cloud/localstack/docker/PortBindingTest.java b/src/test/java/cloud/localstack/docker/PortBindingTest.java
index b6c5b87..d31de89 100644
--- a/src/test/java/cloud/localstack/docker/PortBindingTest.java
+++ b/src/test/java/cloud/localstack/docker/PortBindingTest.java
@@ -2,7 +2,7 @@
import cloud.localstack.Localstack;
import cloud.localstack.LocalstackTestRunner;
-import cloud.localstack.TestUtils;
+import cloud.localstack.awssdkv1.TestUtils;
import cloud.localstack.docker.annotation.LocalstackDockerProperties;
import org.junit.jupiter.api.extension.ExtendWith;
diff --git a/src/test/java/cloud/localstack/docker/SingleContainerTest.java b/src/test/java/cloud/localstack/docker/SingleContainerTest.java
index 5f97e6a..85a7ca3 100644
--- a/src/test/java/cloud/localstack/docker/SingleContainerTest.java
+++ b/src/test/java/cloud/localstack/docker/SingleContainerTest.java
@@ -2,7 +2,7 @@
import cloud.localstack.Localstack;
import cloud.localstack.LocalstackTestRunner;
-import cloud.localstack.TestUtils;
+import cloud.localstack.awssdkv1.TestUtils;
import cloud.localstack.docker.annotation.LocalstackDockerProperties;
import org.junit.jupiter.api.extension.ExtendWith;
diff --git a/src/test/java/cloud/localstack/sample/SQSLambdaHandler.java b/src/test/java/cloud/localstack/sample/SQSLambdaHandler.java
index 7026da5..88327a7 100644
--- a/src/test/java/cloud/localstack/sample/SQSLambdaHandler.java
+++ b/src/test/java/cloud/localstack/sample/SQSLambdaHandler.java
@@ -1,6 +1,6 @@
package cloud.localstack.sample;
-import cloud.localstack.TestUtils;
+import cloud.localstack.awssdkv1.TestUtils;
import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;
import com.amazonaws.services.lambda.runtime.events.SQSEvent;
diff --git a/src/test/resources/log4j2.xml b/src/test/resources/log4j2.xml
new file mode 100644
index 0000000..7fdc595
--- /dev/null
+++ b/src/test/resources/log4j2.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/test/resources/logback.xml b/src/test/resources/logback.xml
index 85f1443..8ed0a3f 100644
--- a/src/test/resources/logback.xml
+++ b/src/test/resources/logback.xml
@@ -2,4 +2,5 @@
-
\ No newline at end of file
+
+