Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
AWS SDK for Java version 2.0 - DAWSCON 2019
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
sullis
January 11, 2019
Technology
360
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AWS SDK for Java version 2.0 - DAWSCON 2019
DAWSCON 2019
Dawson College
Montreal Canada
January 11, 2019
sullis
January 11, 2019
More Decks by sullis
See All by sullis
Dependency Management for Java - Code Remix Summit 2026-05-12
sullis
0
81
AI Assisted Software Development - Portland Java User Group - 2026-04-14
sullis
0
87
Dependency Management for Java - Seattle 2025-11-18
sullis
0
59
Dependency Management for Java - Portland - 2025-11-04
sullis
0
40
Dependency management for Java applications 2025-09-11
sullis
0
62
S3 NYC Iceberg meetup 2025-07-10
sullis
0
65
Amazon S3 Chicago 2025-06-04
sullis
0
150
Amazon S3 Boston 2025-05-07
sullis
0
120
Netty ConFoo Montreal 2025-02-27
sullis
0
190
Other Decks in Technology
See All in Technology
35分でわかるEffective Platform Engineering
nwiizo
5
640
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
20k
internal/testlog で遊ぼう
rokuosan
0
180
平文パスワードはログに“残り” ── 肝心の侵入は“痕跡すら残らない”
kuroneko13
0
130
AI画像認識を活用したゲーム内決済処理検証の自動化
gree_tech
PRO
0
460
アクセスキー流出時の対応で再認識した攻撃側と防御側の非対称性について
kazzpapa3
0
170
8bit CPU 2026
koba789
7
2.8k
巨大気象データと戦う ― サロゲートモデル学習を高速化する圧縮技術
gpuunite_official
0
270
三人寄ればチューリング完全
puhitaku
6
3.1k
Kiro Crew で始める マルチエージェント開発
miu_crescent
PRO
0
180
Introduction to Sansan, inc / Sansan Global Development Center, Inc.
sansan33
PRO
0
3.2k
OAuth SPIFFE Client Authentication(OAuth/OIDC Numa (Immersion) Workshop 2026)
oidfj
PRO
0
180
Featured
See All Featured
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.3k
What does AI have to do with Human Rights?
axbom
PRO
1
2.3k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.3k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
400
How to build a perfect <img>
jonoalderson
1
5.9k
Making the Leap to Tech Lead
cromwellryan
135
10k
Building AI with AI
inesmontani
PRO
1
1.2k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
Raft: Consensus for Rubyists
vanstee
141
7.6k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Transcript
Sean Sullivan January 11, 2019 DAWSCON AWS SDK for Java
version 2.0
software engineer Portland Oregon back office systems Hudson’s Bay Company
About me
Agenda Hudson’s Bay Company SDK for Java • version 1.x
• version 2.x Migrating code from V1 to V2
Toronto NYC
None
saksfifthavenue.com saksoff5th.com lordandtaylor.com thebay.com
thebay.com
walmart.com
HBC Tech stack
Web Checkout Android Checkout iPhone Checkout Checkout service
AWS SDK for Java
SDK v2 announced June 2017 @awsforjava
“Under the hood, we use an HTTP client built on
top of Netty to make the non- blocking HTTP call” “first class support for non-blocking I/O in our async clients” source: AWS Developer Blog
“The AWS SDK for Java 2.0 asynchronous client methods return
CompletableFuture objects” source: SDK V2 Developer Guide
import java.util.concurrent.CompletableFuture; DynamoDBAsyncClient client = DynamoDBAsyncClient.builder() .region(Region.US_WEST_2) .build(); CompletableFuture<ListTablesResponse> response
= client.listTables(ListTablesRequest.builder().build()); CompletableFuture<List<String>> tableNames = response.thenApply(ListTablesResponse::tableNames); tableNames.whenComplete((tables, err) -> { if (tables != null) { tables.forEach(System.out::println); } else { err.printStackTrace(); } }); SDK v2
Github projects aws-sdk-java aws-sdk-java-v2
SDK v2
Pull Request
SDK v2 Maven artifacts
https://search.maven.org/
<dependency> <groupId>com.amazonaws<groupId> <artifactId>aws-java-sdk-dynamodb</artifactId> <version>1.11.481</version> </dependency> Maven dependencies SDK v1 <dependency>
<groupId>software.amazon.awssdk<groupId> <artifactId>dynamodb</artifactId> <version>2.3.0</version> </dependency> SDK v2
import com.amazonaws.services.cloudwatch.AmazonCloudWatchClient; import com.amazonaws.services.cloudwatch.AmazonCloudWatchClientBuilder; import com.amazonaws.services.cloudwatch.model.MetricDatum; import com.amazonaws.services.cloudwatch.model.PutMetricDataRequest; Java packages
SDK v1 import software.amazon.awssdk.services.cloudwatch.CloudWatchAsyncClient; import software.amazon.awssdk.services.cloudwatch.model.MetricDatum; import software.amazon.awssdk.services.cloudwatch.model.PutMetricDataRequest; SDK v2
distinct Maven artifact names distinct Java package names SDK v2
and SDK v1 can co-exist in a Java application SDK v1 jar SDK v2 jar
SDK v2 programming API • Immutable clients and models •
Enhanced pagination • Smart configuration merging • Forward-compatible enums • Streaming operations as first-class concepts
AWS SDK v2 in a Scala application?
val awsSdkVersion = “2.3.0” "org.scala-lang.modules" %% "scala-java8-compat" % “0.9.0", "software.amazon.awssdk"
% "cloudwatch" % awsSdkVersion, "software.amazon.awssdk" % "dynamodb" % awsSdkVersion build.sbt
import scala.compat.java8.FutureConverters._ import scala.collection.JavaConverters._ Foo.scala
FutureConverters?
java.util.concurrent.CompletableFuture scala.concurrent.Future
FutureConverters.scala
Migrating code from V1 to V2
gfc-aws-cloudwatch
“A tiny Scala wrapper around AWS CloudWatch Java client” gfc-aws-cloudwatch
https://github.com/gilt/gfc-aws-cloudwatch
how to migrate gfc-aws-cloudwatch from SDK v1 to SDK v2
?
https://github.com/ gilt/gfc-aws- cloudwatch/pull/8/ files
aws-secretsmanager-caching-java
“AWS Secrets Manager Java caching client enables in-process caching of
secrets for Java applications” aws-secretsmanager-caching-java
https://github.com/aws/aws-secretsmanager-caching-java/
https://github.com/aws/aws-secretsmanager-caching-java/issues/5
how to migrate aws-secretsmanager- caching-java from SDK v1 to SDK
v2 ?
https://github.com/ aws/aws- secretsmanager- caching-java/pull/6
https://github.com/aws/aws-secretsmanager-caching-java/pull/6/files
https://github.com/aws/aws-secretsmanager-caching-java/pull/6/files
Conclusion SDK v1 — production ready SDK v2 — production
ready github.com/aws twitter.com/awsforjava
The end
None
Bonus material
“Hands-on in the AWS Java Ecosystem” AWS re:Invent 2018
“Developing Applications on AWS in the JVM” AWS re:Invent 2017
https://www.slideshare.net/AmazonWebServices/ dev205developing-applications-on-aws-in-the-jvm