awslabs / amazon-sqs-java-extended-client-lib

An extension to the Amazon SQS client that enables sending and receiving messages up to 2GB via Amazon S3.
Apache License 2.0
211 stars 109 forks source link

Upgrade to AWS SDK v2 #58

Closed mngo87 closed 3 years ago

mngo87 commented 4 years ago

Issue #, if available: https://github.com/awslabs/amazon-sqs-java-extended-client-lib/issues/35

Description of changes: Ensure this library is compatible with Java SDK V2

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

mngo87 commented 4 years ago

Since I am unable to attach reviewers. Just mentioning some folks. @robin-aws @adam-aws @aws-rizi

prower-turnitin commented 3 years ago

Hi, I took a look your branch for this pull request. I'm interested in having a version of this which works with AWS SDK 2 for Java. Your using the old payloadoffloading-common which use the old aws sdk v1.

There is a new version of this which works with v2.

        <dependency>
            <groupId>software.amazon.payloadoffloading</groupId>
            <artifactId>payloadoffloading-common</artifactId>
            <version>2.1.1</version>
        </dependency>

I may fork this repo myself to create a version which works with sdk 2. I'm fairly certain the above lib will be required.

adam-aws commented 3 years ago

Hi @prower-turnitin , sorry for the late reply on this PR, yes we had previously refactored this library and moved some code out to payloadoffloading. We've added support to v2 in payloadoffloading so that we may eventually provide support for v2 for the extended client. Yes you would need to use the payloadoffloading.

Thanks

cruizba commented 3 years ago

Hi @prower-turnitin , sorry for the late reply on this PR, yes we had previously refactored this library and moved some code out to payloadoffloading. We've added support to v2 in payloadoffloading so that we may eventually provide support for v2 for the extended client. Yes you would need to use the payloadoffloading.

Thanks

That would be great!! Is there any ETA for the aws sdk v2 support?

Thanks in advance

cemo commented 3 years ago

@adam-aws Would you please release new version of this library which depends on sdk2? We are ending up in our classpath mixed version of v1 and v2.

jordidomingo commented 3 years ago

Hi! Do you have an ETA for v2 @eddy-aws ? We are also blocked with this release. Thanks

juandavidg890121 commented 3 years ago

@mngo87 please review the comments we are blocked with this release

eddy-aws commented 3 years ago

We can send a new PR for those comments. To unblock the customer, let's proceed and merge the PR.

juandavidg890121 commented 3 years ago

We can send a new PR for those comments. To unblock the customer, let's proceed and merge the PR.

the branch has some problems with deprecated methods like withLargePayloadSupportEnabled or withPayloadSizeThreshold should be changed for withPayloadSupportEnabled and withPayloadSizeThreshold

method sendMessageBatch obtain the entries but never set to the sendMessageBatchRequest, something like the following should be done: sendMessageBatchRequestBuilder.entries(batchEntries); sendMessageBatchRequest = sendMessageBatchRequestBuilder.build();

also the tests do not run due to dependency error `java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/ObjectMapper

at software.amazon.payloadoffloading.JsonDataConverter.<init>(JsonDataConverter.java:19)
at software.amazon.payloadoffloading.PayloadS3Pointer.toJson(PayloadS3Pointer.java:35)`

all these changes I put in a local branch and tested

Note: versions of aws-java-sdk, junit and mockito could be increased