[NO ISSUE][EXT] Unbundle aws-sdk-java-bundle

- user model changes: no
- storage format changes: no
- interface changes: no

Details:
Exclude aws-sdk-java-bundle and use individual artifacts for hadoop-aws

Change-Id: I10a56f43a6d722b2038ddac52d9035a0395bcffc
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/13124
Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Wael Alkowaileet <wael.y.k@gmail.com>
Reviewed-by: Michael Blow <mblow@apache.org>
diff --git a/asterixdb/asterix-external-data/pom.xml b/asterixdb/asterix-external-data/pom.xml
index b4aa2d6..ee8dcfd 100644
--- a/asterixdb/asterix-external-data/pom.xml
+++ b/asterixdb/asterix-external-data/pom.xml
@@ -484,6 +484,14 @@
       <artifactId>log4j-1.2-api</artifactId>
     </dependency>
     <dependency>
+      <groupId>com.amazonaws</groupId>
+      <artifactId>aws-java-sdk-s3</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>com.amazonaws</groupId>
+      <artifactId>aws-java-sdk-dynamodb</artifactId>
+    </dependency>
+    <dependency>
       <groupId>org.apache.hadoop</groupId>
       <artifactId>hadoop-aws</artifactId>
     </dependency>
diff --git a/asterixdb/asterix-server/pom.xml b/asterixdb/asterix-server/pom.xml
index 96007c1..b6f8f8a 100644
--- a/asterixdb/asterix-server/pom.xml
+++ b/asterixdb/asterix-server/pom.xml
@@ -199,11 +199,26 @@
               </gavs>
               <noticeUrl>https://raw.githubusercontent.com/aws/aws-sdk-java-v2/2.10.83/NOTICE.txt</noticeUrl>
             </override>
+            <!-- Hadoop AWS SDK -->
             <override>
-              <gav>com.amazonaws:aws-java-sdk-bundle:1.12.1</gav>
+              <gavs>
+                <gav>com.amazonaws:aws-java-sdk-core:1.12.1</gav>
+                <gav>com.amazonaws:jmespath-java:1.12.1</gav>
+                <gav>com.amazonaws:aws-java-sdk-s3:1.12.1</gav>
+                <gav>com.amazonaws:aws-java-sdk-kms:1.12.1</gav>
+                <gav>com.amazonaws:aws-java-sdk-dynamodb:1.12.1</gav>
+              </gavs>
               <noticeUrl>https://raw.githubusercontent.com/aws/aws-sdk-java/1.12.1/NOTICE.txt</noticeUrl>
             </override>
             <override>
+              <gav>software.amazon.eventstream:eventstream:1.0.1</gav>
+              <noticeUrl>https://raw.githubusercontent.com/awslabs/aws-eventstream-java/7be2dd80e12f8835674c8ffb0f4a2efb64c7b585/NOTICE</noticeUrl>
+            </override>
+            <override>
+              <gav>software.amazon.ion:ion-java:1.0.2</gav>
+              <noticeUrl>https://raw.githubusercontent.com/amzn/ion-java/v1.0.2/NOTICE</noticeUrl>
+            </override>
+            <override>
               <gavs>
                 <gav>com.azure:azure-core:1.17.0</gav>
                 <gav>com.azure:azure-core-http-netty:1.10.0</gav>
diff --git a/asterixdb/pom.xml b/asterixdb/pom.xml
index 71228df..75a80b9 100644
--- a/asterixdb/pom.xml
+++ b/asterixdb/pom.xml
@@ -1792,7 +1792,7 @@
       </dependency>
       <dependency>
         <groupId>com.amazonaws</groupId>
-        <artifactId>aws-java-sdk-bundle</artifactId>
+        <artifactId>aws-java-sdk-dynamodb</artifactId>
         <version>${hadoop-awsjavasdk.version}</version>
         <exclusions>
           <exclusion>
@@ -1805,6 +1805,12 @@
         <groupId>org.apache.hadoop</groupId>
         <artifactId>hadoop-aws</artifactId>
         <version>${hadoop.version}</version>
+        <exclusions>
+          <exclusion>
+            <groupId>com.amazonaws</groupId>
+            <artifactId>aws-java-sdk-bundle</artifactId>
+          </exclusion>
+        </exclusions>
       </dependency>
       <!-- Hadoop AWS end -->
     </dependencies>
diff --git a/asterixdb/src/main/appended-resources/supplemental-models.xml b/asterixdb/src/main/appended-resources/supplemental-models.xml
index f99dc60..cd5ccf1 100644
--- a/asterixdb/src/main/appended-resources/supplemental-models.xml
+++ b/asterixdb/src/main/appended-resources/supplemental-models.xml
@@ -485,19 +485,80 @@
   <!-- AWS SDK end -->
 
   <!-- AWS Hadoop SDK start -->
-  <!-- Contains (LICENSE and LICENSE.txt) and (NOTICE and NOTICE.txt) -->
-  <!-- Overridden to ignore the warning of having multiple licenses and notices -->
+  <!-- software.amazon.awssdk is ALv2, and does not contain any embedded LICENSE or NOTICE file -->
+  <!-- license override not needed, ALv2 is specified in its pom.xml -->
+  <!-- see https://github.com/aws/aws-sdk-java-v2/blob/master/LICENSE.txt -->
   <supplement>
     <project>
       <groupId>com.amazonaws</groupId>
-      <artifactId>aws-java-sdk-bundle</artifactId>
+      <artifactId>aws-java-sdk-core</artifactId>
       <properties>
         <license.ignoreMissingEmbeddedLicense>1.12.1</license.ignoreMissingEmbeddedLicense>
         <license.ignoreMissingEmbeddedNotice>1.12.1</license.ignoreMissingEmbeddedNotice>
-        <license.ignoreLicenseOverride>1.12.1</license.ignoreLicenseOverride>
         <license.ignoreNoticeOverride>1.12.1</license.ignoreNoticeOverride>
-        <license.alternateLicenseFile>1.12.1:www.apache.org_licenses_LICENSE-2.0.txt</license.alternateLicenseFile>
-        <license.alternateNoticeFile>1.12.1:raw.githubusercontent.com_aws_aws-sdk-java_1.12.1_NOTICE.txt</license.alternateNoticeFile>
+      </properties>
+    </project>
+  </supplement>
+
+  <supplement>
+    <project>
+      <groupId>com.amazonaws</groupId>
+      <artifactId>jmespath-java</artifactId>
+      <properties>
+        <license.ignoreMissingEmbeddedLicense>1.12.1</license.ignoreMissingEmbeddedLicense>
+        <license.ignoreMissingEmbeddedNotice>1.12.1</license.ignoreMissingEmbeddedNotice>
+        <license.ignoreNoticeOverride>1.12.1</license.ignoreNoticeOverride>
+      </properties>
+    </project>
+  </supplement>
+
+  <supplement>
+    <project>
+      <groupId>com.amazonaws</groupId>
+      <artifactId>aws-java-sdk-s3</artifactId>
+      <properties>
+        <license.ignoreMissingEmbeddedLicense>1.12.1</license.ignoreMissingEmbeddedLicense>
+        <license.ignoreMissingEmbeddedNotice>1.12.1</license.ignoreMissingEmbeddedNotice>
+        <license.ignoreNoticeOverride>1.12.1</license.ignoreNoticeOverride>
+      </properties>
+    </project>
+  </supplement>
+
+  <supplement>
+    <project>
+      <groupId>com.amazonaws</groupId>
+      <artifactId>aws-java-sdk-kms</artifactId>
+      <properties>
+        <license.ignoreMissingEmbeddedLicense>1.12.1</license.ignoreMissingEmbeddedLicense>
+        <license.ignoreMissingEmbeddedNotice>1.12.1</license.ignoreMissingEmbeddedNotice>
+        <license.ignoreNoticeOverride>1.12.1</license.ignoreNoticeOverride>
+      </properties>
+    </project>
+  </supplement>
+
+  <supplement>
+    <project>
+      <groupId>com.amazonaws</groupId>
+      <artifactId>aws-java-sdk-dynamodb</artifactId>
+      <properties>
+        <license.ignoreMissingEmbeddedLicense>1.12.1</license.ignoreMissingEmbeddedLicense>
+        <license.ignoreMissingEmbeddedNotice>1.12.1</license.ignoreMissingEmbeddedNotice>
+        <license.ignoreNoticeOverride>1.12.1</license.ignoreNoticeOverride>
+      </properties>
+    </project>
+  </supplement>
+
+  <!-- software.amazon.ion is ALv2, and does not contain any embedded LICENSE or NOTICE file -->
+  <!-- license override not needed, ALv2 is specified in its pom.xml -->
+  <!-- see https://github.com/amzn/ion-java -->
+  <supplement>
+    <project>
+      <groupId>software.amazon.ion</groupId>
+      <artifactId>ion-java</artifactId>
+      <properties>
+        <license.ignoreMissingEmbeddedLicense>1.0.2</license.ignoreMissingEmbeddedLicense>
+        <license.ignoreMissingEmbeddedNotice>1.0.2</license.ignoreMissingEmbeddedNotice>
+        <license.ignoreNoticeOverride>1.0.2</license.ignoreNoticeOverride>
       </properties>
     </project>
   </supplement>
@@ -512,7 +573,7 @@
       <artifactId>netty-reactive-streams</artifactId>
       <properties>
         <license.ignoreMissingEmbeddedLicense>2.0.4</license.ignoreMissingEmbeddedLicense>
-        <license.ignoreMissingEmbeddedNotice>2.0.4</license.ignoreMissingEmbeddedNotice>doesn
+        <license.ignoreMissingEmbeddedNotice>2.0.4</license.ignoreMissingEmbeddedNotice>
       </properties>
     </project>
   </supplement>