Skip to content

Commit 51cf791

Browse files
authored
Release preparation for removing Jackson as an external dependency (aws#2598)
* Moved Jackson from being an external SDK dependency to an internal dependency. Jackson-databind was removed from being a dependency (except in the code generator). Jackson-core and Jackson-dataformat-cbor were moved to shaded dependencies. This was done because Jackson versions are not 100% compatible between minor versions and keeping them up to date were problematic for SDK customers. Customers will see a change in artifact sizes. Customers which do not use Jackson-databind outside of the SDK today will see a ~1 MB artifact size decrease. Customers which do use Jackson-databind outside of the SDK will see a ~0.5 MB artifact size increase. This change required breaking inter-module (protected) APIs, so it should not be released outside of an SDK minor version bump. Customers will not be able to use older client versions with this version of the core libraries. Change summary: 1. Added 'jackson-core' and 'jackson-dataformat-cbor' which contain the SDK's shaded versions with the Jackson packages of the same names. 2. Removed 'aws-ion-protocol' module. This was not used by any public AWS services and can be re-added when service support is needed. 3. Added 'json-utils', a library for reading and parsing JSON. * Version bump to 2.17.0
1 parent 361afd8 commit 51cf791

File tree

407 files changed

+2488
-5269
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

407 files changed

+2488
-5269
lines changed

.brazil.json

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"modules": {
3+
"third-party-jackson-core": {
4+
"artifactType": "JAR",
5+
"includes": ["target/aws-sdk-java-third-party-jackson-core-*.jar"]
6+
},
7+
"third-party-jackson-dataformat-cbor": {
8+
"artifactType": "JAR",
9+
"includes": ["target/aws-sdk-java-third-party-jackson-dataformat-cbor-*.jar"]
10+
}
11+
}
12+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"category": "AWS SDK for Java v2",
3+
"contributor": "",
4+
"type": "feature",
5+
"description": "Moved Jackson from an external SDK dependency to an internal dependency: https://aws.amazon.com/blogs/developer/the-aws-sdk-for-java-2-17-removes-its-external-dependency-on-jackson/"
6+
}

.gitignore

+4
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@
1414
# Maven
1515
target/
1616

17+
# JEnv
18+
.java-version
19+
20+
# Shade
1721
**/dependency-reduced-pom.xml
1822

1923
*.pyc

NOTICE.txt

+2
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ This software includes third party software subject to the following copyrights:
1212
- PKCS#1 PEM encoded private key parsing and utility functions from oauth.googlecode.com - Copyright 1998-2010 AOL Inc.
1313
- Apache Commons Lang - https://github.com/apache/commons-lang
1414
- Netty Reactive Streams - https://github.com/playframework/netty-reactive-streams
15+
- Jackson-core - https://github.com/FasterXML/jackson-core
16+
- Jackson-dataformat-cbor - https://github.com/FasterXML/jackson-dataformats-binary
1517

1618
The licenses for these third party components are included in LICENSE.txt
1719

archetypes/archetype-app-quickstart/pom.xml

+2-2
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
<parent>
2121
<artifactId>archetypes</artifactId>
2222
<groupId>software.amazon.awssdk</groupId>
23-
<version>2.16.105-SNAPSHOT</version>
23+
<version>2.17.0-SNAPSHOT</version>
2424
</parent>
2525
<modelVersion>4.0.0</modelVersion>
2626

@@ -171,4 +171,4 @@
171171
</plugins>
172172
</build>
173173

174-
</project>
174+
</project>

archetypes/archetype-lambda/pom.xml

+2-2
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
<parent>
2121
<artifactId>archetypes</artifactId>
2222
<groupId>software.amazon.awssdk</groupId>
23-
<version>2.16.105-SNAPSHOT</version>
23+
<version>2.17.0-SNAPSHOT</version>
2424
</parent>
2525
<modelVersion>4.0.0</modelVersion>
2626
<artifactId>archetype-lambda</artifactId>
@@ -169,4 +169,4 @@
169169
</plugin>
170170
</plugins>
171171
</build>
172-
</project>
172+
</project>

archetypes/archetype-tools/pom.xml

+2-2
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
<parent>
2121
<artifactId>archetypes</artifactId>
2222
<groupId>software.amazon.awssdk</groupId>
23-
<version>2.16.105-SNAPSHOT</version>
23+
<version>2.17.0-SNAPSHOT</version>
2424
</parent>
2525
<modelVersion>4.0.0</modelVersion>
2626

@@ -59,4 +59,4 @@
5959
</plugins>
6060
</build>
6161

62-
</project>
62+
</project>

archetypes/pom.xml

+2-2
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
<parent>
2121
<artifactId>aws-sdk-java-pom</artifactId>
2222
<groupId>software.amazon.awssdk</groupId>
23-
<version>2.16.105-SNAPSHOT</version>
23+
<version>2.17.0-SNAPSHOT</version>
2424
</parent>
2525
<modelVersion>4.0.0</modelVersion>
2626
<artifactId>archetypes</artifactId>
@@ -34,4 +34,4 @@
3434
<description>
3535
Maven Archetypes for applications using Java SDK 2.x
3636
</description>
37-
</project>
37+
</project>

aws-sdk-java/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
<parent>
1818
<groupId>software.amazon.awssdk</groupId>
1919
<artifactId>aws-sdk-java-pom</artifactId>
20-
<version>2.16.105-SNAPSHOT</version>
20+
<version>2.17.0-SNAPSHOT</version>
2121
<relativePath>../pom.xml</relativePath>
2222
</parent>
2323
<artifactId>aws-sdk-java</artifactId>

bom-internal/pom.xml

+1-6
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
<parent>
2121
<artifactId>aws-sdk-java-pom</artifactId>
2222
<groupId>software.amazon.awssdk</groupId>
23-
<version>2.16.105-SNAPSHOT</version>
23+
<version>2.17.0-SNAPSHOT</version>
2424
</parent>
2525
<modelVersion>4.0.0</modelVersion>
2626

@@ -84,11 +84,6 @@
8484
<artifactId>jackson-datatype-jsr310</artifactId>
8585
<version>${jackson.version}</version>
8686
</dependency>
87-
<dependency>
88-
<groupId>software.amazon.ion</groupId>
89-
<artifactId>ion-java</artifactId>
90-
<version>${ion.java.version}</version>
91-
</dependency>
9287
<dependency>
9388
<groupId>org.apache.httpcomponents</groupId>
9489
<artifactId>httpclient</artifactId>

bom/pom.xml

+16-6
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
<parent>
1818
<groupId>software.amazon.awssdk</groupId>
1919
<artifactId>aws-sdk-java-pom</artifactId>
20-
<version>2.16.105-SNAPSHOT</version>
20+
<version>2.17.0-SNAPSHOT</version>
2121
<relativePath>../pom.xml</relativePath>
2222
</parent>
2323
<artifactId>bom</artifactId>
@@ -64,27 +64,37 @@
6464
</dependency>
6565
<dependency>
6666
<groupId>software.amazon.awssdk</groupId>
67-
<artifactId>auth</artifactId>
67+
<artifactId>json-utils</artifactId>
6868
<version>${awsjavasdk.version}</version>
6969
</dependency>
7070
<dependency>
7171
<groupId>software.amazon.awssdk</groupId>
72-
<artifactId>aws-core</artifactId>
72+
<artifactId>third-party-jackson-core</artifactId>
7373
<version>${awsjavasdk.version}</version>
7474
</dependency>
7575
<dependency>
7676
<groupId>software.amazon.awssdk</groupId>
77-
<artifactId>profiles</artifactId>
77+
<artifactId>third-party-jackson-dataformat-cbor</artifactId>
7878
<version>${awsjavasdk.version}</version>
7979
</dependency>
8080
<dependency>
8181
<groupId>software.amazon.awssdk</groupId>
82-
<artifactId>aws-cbor-protocol</artifactId>
82+
<artifactId>auth</artifactId>
83+
<version>${awsjavasdk.version}</version>
84+
</dependency>
85+
<dependency>
86+
<groupId>software.amazon.awssdk</groupId>
87+
<artifactId>aws-core</artifactId>
88+
<version>${awsjavasdk.version}</version>
89+
</dependency>
90+
<dependency>
91+
<groupId>software.amazon.awssdk</groupId>
92+
<artifactId>profiles</artifactId>
8393
<version>${awsjavasdk.version}</version>
8494
</dependency>
8595
<dependency>
8696
<groupId>software.amazon.awssdk</groupId>
87-
<artifactId>aws-ion-protocol</artifactId>
97+
<artifactId>aws-cbor-protocol</artifactId>
8898
<version>${awsjavasdk.version}</version>
8999
</dependency>
90100
<dependency>

bundle/pom.xml

+1-12
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
<parent>
2222
<groupId>software.amazon.awssdk</groupId>
2323
<artifactId>aws-sdk-java-pom</artifactId>
24-
<version>2.16.105-SNAPSHOT</version>
24+
<version>2.17.0-SNAPSHOT</version>
2525
</parent>
2626
<artifactId>bundle</artifactId>
2727
<packaging>jar</packaging>
@@ -70,31 +70,20 @@
7070
<include>com.fasterxml.jackson.jr:*</include>
7171
<include>io.netty:*</include>
7272
<include>com.typesafe.netty:*</include>
73-
<include>com.fasterxml.jackson.core:*</include>
74-
<include>com.fasterxml.jackson.dataformat:jackson-dataformat-cbor</include>
7573
<include>org.apache.httpcomponents:*</include>
7674
<include>org.reactivestreams:*</include>
7775
<include>org.slf4j:*</include>
7876
<include>commons-codec:commons-codec</include>
79-
<include>software.amazon.ion:ion-java</include>
8077
<include>software.amazon.awssdk:*</include>
8178
<include>software.amazon:*</include>
8279
<include>commons-logging:*</include>
8380
</includes>
8481
</artifactSet>
8582
<relocations>
86-
<relocation>
87-
<pattern>com.fasterxml.jackson</pattern>
88-
<shadedPattern>software.amazon.awssdk.thirdparty.com.fasterxml.jackson</shadedPattern>
89-
</relocation>
9083
<relocation>
9184
<pattern>org.apache</pattern>
9285
<shadedPattern>software.amazon.awssdk.thirdparty.org.apache</shadedPattern>
9386
</relocation>
94-
<relocation>
95-
<pattern>software.amazon.ion</pattern>
96-
<shadedPattern>software.amazon.awssdk.thirdparty.ion</shadedPattern>
97-
</relocation>
9887
<relocation>
9988
<pattern>io.netty</pattern>
10089
<shadedPattern>software.amazon.awssdk.thirdparty.io.netty</shadedPattern>

change

Whitespace-only changes.

codegen-lite-maven-plugin/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<parent>
2323
<groupId>software.amazon.awssdk</groupId>
2424
<artifactId>aws-sdk-java-pom</artifactId>
25-
<version>2.16.105-SNAPSHOT</version>
25+
<version>2.17.0-SNAPSHOT</version>
2626
<relativePath>../pom.xml</relativePath>
2727
</parent>
2828
<artifactId>codegen-lite-maven-plugin</artifactId>

codegen-lite/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
<parent>
2222
<groupId>software.amazon.awssdk</groupId>
2323
<artifactId>aws-sdk-java-pom</artifactId>
24-
<version>2.16.105-SNAPSHOT</version>
24+
<version>2.17.0-SNAPSHOT</version>
2525
</parent>
2626
<artifactId>codegen-lite</artifactId>
2727
<name>AWS Java SDK :: Code Generator Lite</name>

codegen-maven-plugin/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<parent>
2323
<groupId>software.amazon.awssdk</groupId>
2424
<artifactId>aws-sdk-java-pom</artifactId>
25-
<version>2.16.105-SNAPSHOT</version>
25+
<version>2.17.0-SNAPSHOT</version>
2626
<relativePath>../pom.xml</relativePath>
2727
</parent>
2828
<artifactId>codegen-maven-plugin</artifactId>

codegen/pom.xml

+9-6
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
<parent>
2222
<groupId>software.amazon.awssdk</groupId>
2323
<artifactId>aws-sdk-java-pom</artifactId>
24-
<version>2.16.105-SNAPSHOT</version>
24+
<version>2.17.0-SNAPSHOT</version>
2525
</parent>
2626
<artifactId>codegen</artifactId>
2727
<name>AWS Java SDK :: Code Generator</name>
@@ -102,11 +102,6 @@
102102
<artifactId>aws-cbor-protocol</artifactId>
103103
<version>${awsjavasdk.version}</version>
104104
</dependency>
105-
<dependency>
106-
<groupId>software.amazon.awssdk</groupId>
107-
<artifactId>aws-ion-protocol</artifactId>
108-
<version>${awsjavasdk.version}</version>
109-
</dependency>
110105
<dependency>
111106
<groupId>software.amazon.awssdk</groupId>
112107
<artifactId>aws-query-protocol</artifactId>
@@ -143,6 +138,14 @@
143138
<groupId>com.fasterxml.jackson.jr</groupId>
144139
<artifactId>jackson-jr-stree</artifactId>
145140
</dependency>
141+
<dependency>
142+
<groupId>com.fasterxml.jackson.core</groupId>
143+
<artifactId>jackson-annotations</artifactId>
144+
</dependency>
145+
<dependency>
146+
<groupId>com.fasterxml.jackson.core</groupId>
147+
<artifactId>jackson-databind</artifactId>
148+
</dependency>
146149
<dependency>
147150
<groupId>org.slf4j</groupId>
148151
<artifactId>slf4j-api</artifactId>

codegen/src/main/java/software/amazon/awssdk/codegen/model/intermediate/Metadata.java

-5
Original file line numberDiff line numberDiff line change
@@ -499,17 +499,12 @@ public Metadata withJsonVersion(String jsonVersion) {
499499
return this;
500500
}
501501

502-
public boolean isIonProtocol() {
503-
return protocol == Protocol.ION;
504-
}
505-
506502
public boolean isCborProtocol() {
507503
return protocol == Protocol.CBOR;
508504
}
509505

510506
public boolean isJsonProtocol() {
511507
return protocol == Protocol.CBOR ||
512-
protocol == Protocol.ION ||
513508
protocol == Protocol.AWS_JSON ||
514509
protocol == Protocol.REST_JSON;
515510
}

codegen/src/main/java/software/amazon/awssdk/codegen/model/intermediate/Protocol.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,7 @@ public enum Protocol {
2424
REST_JSON("rest-json"),
2525
CBOR("cbor"),
2626
QUERY("query"),
27-
REST_XML("rest-xml"),
28-
ION("ion");
27+
REST_XML("rest-xml");
2928

3029
private String protocol;
3130

codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/SyncClientClass.java

-1
Original file line numberDiff line numberDiff line change
@@ -339,7 +339,6 @@ static ProtocolSpec getProtocolSpecs(PoetExtensions poetExtensions, Intermediate
339339
case AWS_JSON:
340340
case REST_JSON:
341341
case CBOR:
342-
case ION:
343342
return new JsonProtocolSpec(poetExtensions, model);
344343
default:
345344
throw new RuntimeException("Unknown protocol: " + protocol.name());

codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/specs/JsonProtocolSpec.java

-4
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@
5151
import software.amazon.awssdk.core.http.HttpResponseHandler;
5252
import software.amazon.awssdk.core.protocol.VoidSdkResponse;
5353
import software.amazon.awssdk.protocols.cbor.AwsCborProtocolFactory;
54-
import software.amazon.awssdk.protocols.ion.AwsIonProtocolFactory;
5554
import software.amazon.awssdk.protocols.json.AwsJsonProtocol;
5655
import software.amazon.awssdk.protocols.json.AwsJsonProtocolFactory;
5756
import software.amazon.awssdk.protocols.json.BaseAwsJsonProtocolFactory;
@@ -119,8 +118,6 @@ private CodeBlock customErrorCodeFieldName() {
119118
private Class<?> protocolFactoryClass() {
120119
if (model.getMetadata().isCborProtocol()) {
121120
return AwsCborProtocolFactory.class;
122-
} else if (model.getMetadata().isIonProtocol()) {
123-
return AwsIonProtocolFactory.class;
124121
} else {
125122
return AwsJsonProtocolFactory.class;
126123
}
@@ -377,7 +374,6 @@ public Optional<MethodSpec> createErrorResponseHandler() {
377374
private String protocolEnumName(software.amazon.awssdk.codegen.model.intermediate.Protocol protocol) {
378375
switch (protocol) {
379376
case CBOR:
380-
case ION:
381377
case AWS_JSON:
382378
return AWS_JSON.name();
383379
default:

codegen/src/main/java/software/amazon/awssdk/codegen/poet/transform/MarshallerSpec.java

-1
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,6 @@ private MarshallerProtocolSpec getProtocolSpecs(software.amazon.awssdk.codegen.m
117117
switch (protocol) {
118118
case REST_JSON:
119119
case CBOR:
120-
case ION:
121120
case AWS_JSON:
122121
return getJsonMarshallerSpec();
123122

core/annotations/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
<parent>
2121
<artifactId>core</artifactId>
2222
<groupId>software.amazon.awssdk</groupId>
23-
<version>2.16.105-SNAPSHOT</version>
23+
<version>2.17.0-SNAPSHOT</version>
2424
</parent>
2525
<modelVersion>4.0.0</modelVersion>
2626

core/arns/pom.xml

+2-2
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
<parent>
2121
<artifactId>core</artifactId>
2222
<groupId>software.amazon.awssdk</groupId>
23-
<version>2.16.105-SNAPSHOT</version>
23+
<version>2.17.0-SNAPSHOT</version>
2424
</parent>
2525
<modelVersion>4.0.0</modelVersion>
2626

@@ -74,4 +74,4 @@
7474
</plugin>
7575
</plugins>
7676
</build>
77-
</project>
77+
</project>

0 commit comments

Comments
 (0)