Skip to content

Commit 99d42b3

Browse files
authored
Revert "Upgrade to AWS SDK v2 (#6)"
This reverts commit 2861f22.
1 parent 7ee31bd commit 99d42b3

File tree

6 files changed

+656
-1225
lines changed

6 files changed

+656
-1225
lines changed

README.md

Lines changed: 39 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ It saves the actual payload in S3 and publishes the reference of the stored S3 o
1515
<dependency>
1616
<groupId>software.amazon.sns</groupId>
1717
<artifactId>sns-extended-client</artifactId>
18-
<version>2.0.0</version>
18+
<version>1.0.0</version>
1919
<type>jar</type>
2020
</dependency>
2121
```
@@ -44,18 +44,20 @@ Below is the code sample that creates a sample topic and queue, subscribes the q
4444
```java
4545
import com.amazon.sqs.javamessaging.AmazonSQSExtendedClient;
4646
import com.amazon.sqs.javamessaging.ExtendedClientConfiguration;
47-
import software.amazon.awssdk.regions.Region;
48-
import software.amazon.awssdk.services.s3.S3Client;
49-
import software.amazon.awssdk.services.s3.model.CreateBucketRequest;
50-
import software.amazon.awssdk.services.sns.SnsClient;
51-
import software.amazon.awssdk.services.sns.model.CreateTopicRequest;
52-
import software.amazon.awssdk.services.sns.model.PublishRequest;
53-
import software.amazon.awssdk.services.sns.model.SetSubscriptionAttributesRequest;
54-
import software.amazon.awssdk.services.sns.model.SubscribeRequest;
55-
import software.amazon.awssdk.services.sqs.SqsClient;
56-
import software.amazon.awssdk.services.sqs.model.CreateQueueRequest;
57-
import software.amazon.awssdk.services.sqs.model.ReceiveMessageRequest;
58-
import software.amazon.awssdk.services.sqs.model.ReceiveMessageResponse;
47+
import com.amazonaws.regions.Region;
48+
import com.amazonaws.regions.Regions;
49+
import com.amazonaws.services.s3.AmazonS3;
50+
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
51+
import com.amazonaws.services.sns.AmazonSNS;
52+
import com.amazonaws.services.sns.AmazonSNSClientBuilder;
53+
import com.amazonaws.services.sns.model.CreateTopicRequest;
54+
import com.amazonaws.services.sns.model.PublishRequest;
55+
import com.amazonaws.services.sns.model.SetSubscriptionAttributesRequest;
56+
import com.amazonaws.services.sns.util.Topics;
57+
import com.amazonaws.services.sqs.AmazonSQS;
58+
import com.amazonaws.services.sqs.AmazonSQSClientBuilder;
59+
import com.amazonaws.services.sqs.model.CreateQueueRequest;
60+
import com.amazonaws.services.sqs.model.ReceiveMessageResult;
5961
import software.amazon.sns.AmazonSNSExtendedClient;
6062
import software.amazon.sns.SNSExtendedClientConfiguration;
6163

@@ -65,60 +67,59 @@ public class Example {
6567
final String BUCKET_NAME = "extended-client-bucket";
6668
final String TOPIC_NAME = "extended-client-topic";
6769
final String QUEUE_NAME = "extended-client-queue";
68-
final Region region = Region.US_WEST_2;
70+
final Regions region = Regions.DEFAULT_REGION;
6971

7072
//Message threshold controls the maximum message size that will be allowed to be published
7173
//through SNS using the extended client. Payload of messages exceeding this value will be stored in
7274
//S3. The default value of this parameter is 256 KB which is the maximum message size in SNS (and SQS).
7375
final int EXTENDED_STORAGE_MESSAGE_SIZE_THRESHOLD = 32;
7476

7577
//Initialize SNS, SQS and S3 clients
76-
final SnsClient snsClient = SnsClient.builder().region(region).build();
77-
final SqsClient sqsClient = SqsClient.builder().region(region).build();
78-
final S3Client s3Client = S3Client.builder().region(region).build();
78+
final AmazonSNS snsClient = AmazonSNSClientBuilder.standard().withRegion(region).build();
79+
final AmazonSQS sqsClient = AmazonSQSClientBuilder.standard().withRegion(region).build();
80+
final AmazonS3 s3Client = AmazonS3ClientBuilder.standard().withRegion(region).build();
7981

8082
//Create bucket, topic, queue and subscription
81-
s3Client.createBucket(CreateBucketRequest.builder().bucket(BUCKET_NAME).build());
83+
s3Client.createBucket(BUCKET_NAME);
8284
final String topicArn = snsClient.createTopic(
83-
CreateTopicRequest.builder().name(TOPIC_NAME).build()
84-
).topicArn();
85+
new CreateTopicRequest().withName(TOPIC_NAME)
86+
).getTopicArn();
8587
final String queueUrl = sqsClient.createQueue(
86-
CreateQueueRequest.builder().queueName(QUEUE_NAME).build()
87-
).queueUrl();
88-
final String subscriptionArn = snsClient.subscribe(
89-
SubscribeRequest.builder().topicArn(topicArn).endpoint(queueUrl).build()
90-
).subscriptionArn();
88+
new CreateQueueRequest().withQueueName(QUEUE_NAME)
89+
).getQueueUrl();
90+
final String subscriptionArn = Topics.subscribeQueue(
91+
snsClient, sqsClient, topicArn, queueUrl
92+
);
9193

9294
//To read message content stored in S3 transparently through SQS extended client,
9395
//set the RawMessageDelivery subscription attribute to TRUE
94-
final SetSubscriptionAttributesRequest subscriptionAttributesRequest = SetSubscriptionAttributesRequest.builder()
95-
.subscriptionArn(subscriptionArn)
96-
.attributeName("RawMessageDelivery")
97-
.attributeValue("TRUE")
98-
.build();
96+
final SetSubscriptionAttributesRequest subscriptionAttributesRequest = new SetSubscriptionAttributesRequest();
97+
subscriptionAttributesRequest.setSubscriptionArn(subscriptionArn);
98+
subscriptionAttributesRequest.setAttributeName("RawMessageDelivery");
99+
subscriptionAttributesRequest.setAttributeValue("TRUE");
99100
snsClient.setSubscriptionAttributes(subscriptionAttributesRequest);
100101

101-
//Initialize SNS extended client
102+
//Initialize SNS extended client
102103
//PayloadSizeThreshold triggers message content storage in S3 when the threshold is exceeded
103104
//To store all messages content in S3, use AlwaysThroughS3 flag
104105
final SNSExtendedClientConfiguration snsExtendedClientConfiguration = new SNSExtendedClientConfiguration()
105-
.withPayloadSupportEnabled(s3Client, BUCKET_NAME)
106-
.withPayloadSizeThreshold(EXTENDED_STORAGE_MESSAGE_SIZE_THRESHOLD);
106+
.withPayloadSupportEnabled(s3Client, BUCKET_NAME)
107+
.withPayloadSizeThreshold(EXTENDED_STORAGE_MESSAGE_SIZE_THRESHOLD);
107108
final AmazonSNSExtendedClient snsExtendedClient = new AmazonSNSExtendedClient(snsClient, snsExtendedClientConfiguration);
108109

109110
//Publish message via SNS with storage in S3
110111
final String message = "This message is stored in S3 as it exceeds the threshold of 32 bytes set above.";
111-
snsExtendedClient.publish(PublishRequest.builder().topicArn(topicArn).message(message).build());
112+
snsExtendedClient.publish(topicArn, message);
112113

113114
//Initialize SQS extended client
114115
final ExtendedClientConfiguration sqsExtendedClientConfiguration = new ExtendedClientConfiguration()
115-
.withPayloadSupportEnabled(s3Client, BUCKET_NAME);
116+
.withPayloadSupportEnabled(s3Client, BUCKET_NAME);
116117
final AmazonSQSExtendedClient sqsExtendedClient =
117-
new AmazonSQSExtendedClient(sqsClient, sqsExtendedClientConfiguration);
118+
new AmazonSQSExtendedClient(sqsClient, sqsExtendedClientConfiguration);
118119

119120
//Read the message from the queue
120-
final ReceiveMessageResponse response = sqsExtendedClient.receiveMessage(ReceiveMessageRequest.builder().queueUrl(queueUrl).build());
121-
System.out.println("Received message is " + response.messages().get(0).body());
121+
final ReceiveMessageResult result = sqsExtendedClient.receiveMessage(queueUrl);
122+
System.out.println("Received message is " + result.getMessages().get(0).getBody());
122123
}
123124
}
124125
```

pom.xml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>software.amazon.sns</groupId>
88
<artifactId>sns-extended-client</artifactId>
9-
<version>2.0.0</version>
9+
<version>1.1.2</version>
1010
<packaging>jar</packaging>
1111
<name>Amazon SNS Extended Client Library for Java</name>
1212
<description>An extension to the Amazon SNS client that enables sending messages up to 2GB via Amazon S3.
@@ -26,7 +26,7 @@
2626
</licenses>
2727

2828
<properties>
29-
<aws-java-sdk.version>2.14.19</aws-java-sdk.version>
29+
<aws-java-sdk.version>1.12.261</aws-java-sdk.version>
3030
</properties>
3131

3232
<developers>
@@ -44,22 +44,22 @@
4444
<dependency>
4545
<groupId>software.amazon.payloadoffloading</groupId>
4646
<artifactId>payloadoffloading-common</artifactId>
47-
<version>2.1.2</version>
47+
<version>1.1.1</version>
4848
</dependency>
4949
<dependency>
5050
<groupId>com.amazonaws</groupId>
5151
<artifactId>amazon-sqs-java-extended-client-lib</artifactId>
52-
<version>2.0.2</version>
52+
<version>1.1.0</version>
5353
<type>jar</type>
5454
</dependency>
5555
<dependency>
56-
<groupId>software.amazon.awssdk</groupId>
57-
<artifactId>sns</artifactId>
56+
<groupId>com.amazonaws</groupId>
57+
<artifactId>aws-java-sdk-sns</artifactId>
5858
<version>${aws-java-sdk.version}</version>
5959
</dependency>
6060
<dependency>
61-
<groupId>software.amazon.awssdk</groupId>
62-
<artifactId>s3</artifactId>
61+
<groupId>com.amazonaws</groupId>
62+
<artifactId>aws-java-sdk-s3</artifactId>
6363
<version>${aws-java-sdk.version}</version>
6464
</dependency>
6565
<dependency>
@@ -120,7 +120,7 @@
120120
<plugin>
121121
<groupId>org.apache.maven.plugins</groupId>
122122
<artifactId>maven-javadoc-plugin</artifactId>
123-
<version>3.0.1</version>
123+
<version>2.9.1</version>
124124
<executions>
125125
<execution>
126126
<id>attach-javadocs</id>

0 commit comments

Comments
 (0)