We’ve got launched the AWS SDK for Java 2.17, which removes the SDK’s exterior dependency on the favored third-party JSON library, Jackson. Which means that AWS SDK for Java 2.x not requires an exterior copy of Jackson-databind, Jackson-core, or Jackson-dataformat-cbor as a way to operate. This launch doesn’t change any of the general public AWS SDK APIs.
Why was this alteration made?
Beforehand, updating the Jackson model utilized by the Java SDK meant that buyer purposes may probably break due to backwards-incompatibilities between the outdated and new Jackson variations. Now, the SDK is utilizing its personal “shaded” copy of Jackson to make sure we will keep-up-to date with the newest Jackson efficiency, stability, and safety enhancements.
Will I’ve any points upgrading to model 2.17 from earlier 2.x variations?
Many of the SDK modifications in model 2.17 are “underneath the hood”. In our testing, most clients didn’t encounter points once they upgraded to the AWS SDK for Java 2.17 from an earlier 2.x model. The next modifications could also be seen by a subset of consumers:
SDK Footprint Modifications
As a result of the SDK now contains its personal “shaded” copy of Jackson, the footprint (complete jar measurement) of the SDK will change. Clients who don’t use Jackson outdoors of the SDK will see an approximate 1 MB jar measurement lower. Clients use Jackson outdoors of the SDK will see an approximate 500 KB jar measurement enhance, to account for the SDK’s inside copy of Jackson.
SDK Dependency Modifications
Buyer purposes that use Jackson with out declaring their very own dependency on the library could not compile after upgrading to the SDK 2.17. In the event you discover that your software not compiles as a result of lacking Jackson packages or lessons, it’s best to add your individual dependency on Jackson to right the error. We additionally advocate configuring your venture to make use of the maven-dependency-plugin, which is able to guarantee you might be explicitly declaring all dependencies that you’re utilizing.
You probably have any questions or considerations, you possibly can contact us on Github.