This is an automated email from the ASF dual-hosted git repository.

daim pushed a commit to branch OAK-12008
in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git

commit 45872f769d339923ae52c04faa76438359fea523
Author: Rishabh Kumar <[email protected]>
AuthorDate: Thu Nov 20 15:50:09 2025 +0530

    OAK-12008 : Embed aws sdk 2.x jars into oak-blob-cloud bundle (#2616)
---
 oak-blob-cloud/pom.xml | 250 ++++++++++++++++++++++++++++++++++++++++++++++++-
 oak-parent/pom.xml     |   3 +-
 2 files changed, 247 insertions(+), 6 deletions(-)

diff --git a/oak-blob-cloud/pom.xml b/oak-blob-cloud/pom.xml
index 0c076ad63d..9cc054b2cc 100644
--- a/oak-blob-cloud/pom.xml
+++ b/oak-blob-cloud/pom.xml
@@ -43,6 +43,100 @@
                         </Import-Package>
                         
<Export-Package>org.apache.jackrabbit.oak.blob.cloud.aws.s3,org.apache.jackrabbit.oak.blob.cloud.s3.stats</Export-Package>
                         <DynamicImport-Package>sun.io</DynamicImport-Package>
+                        <Import-Package>
+                            <!-- Apache Commons -->
+                            org.apache.commons.io.*;version="[1.4,2)",
+                            org.apache.commons.lang3.*;version="[3.17,4)",
+
+                            <!-- Jackrabbit/Oak -->
+                            org.apache.jackrabbit.core.data,
+                            org.apache.jackrabbit.guava.common.cache,
+                            org.apache.jackrabbit.oak.commons.*,
+                            org.apache.jackrabbit.oak.plugins.blob.*,
+                            org.apache.jackrabbit.oak.spi.blob,
+                            org.apache.jackrabbit.oak.stats,
+
+                            <!-- OSGi -->
+                            org.osgi.framework,
+                            org.osgi.service.component,
+
+                            <!-- SLF4J -->
+                            org.slf4j;version="[1.7,2)",
+
+                            <!-- AWS SDK CRT (truly optional - only needed for 
CRT HTTP client) -->
+                            software.amazon.awssdk.crt;resolution:=optional,
+                            software.amazon.awssdk.crt.*;resolution:=optional,
+
+                            <!-- AWS SDK (embedded, don't import) -->
+                            !software.amazon.awssdk.*,
+                            !software.amazon.eventstream,
+
+                            <!-- Netty (embedded, don't import) -->
+                            !io.netty.*,
+
+                            <!-- Reactive Streams (embedded, don't import) -->
+                            !org.reactivestreams,
+
+                            <!-- Truly optional: not used by AWS SDK Java 
client -->
+                            kotlin;resolution:=optional,
+                            kotlin.*;resolution:=optional,
+                            scala.*;resolution:=optional,
+
+                            <!-- Import everything else -->
+                            *
+                        </Import-Package>
+                        <Embed-Dependency>
+                            <!-- AWS SDK Core -->
+                            s3,
+                            apache-client,
+                            s3-transfer-manager,
+                            netty-nio-client,
+                            aws-xml-protocol,
+                            aws-query-protocol,
+                            protocol-core,
+                            arns,
+                            profiles,
+                            crt-core,
+                            http-auth,
+                            identity-spi,
+                            http-auth-spi,
+                            http-auth-aws,
+                            checksums,
+                            checksums-spi,
+                            retries-spi,
+                            sdk-core,
+                            retries,
+                            auth,
+                            http-auth-aws-eventstream,
+                            http-client-spi,
+                            regions,
+                            annotations,
+                            utils,
+                            aws-core,
+                            utils-lite,
+                            metrics-spi,
+                            json-utils,
+                            third-party-jackson-core,
+                            endpoints-spi,
+                            <!-- EventStream -->
+                            eventstream,
+                            <!-- Reactive Streams -->
+                            reactive-streams,
+                            <!-- Netty - explicit list instead of wildcard -->
+                            netty-codec-http,
+                            netty-codec-http2,
+                            netty-codec,
+                            netty-codec-dns,
+                            netty-transport,
+                            netty-common,
+                            netty-buffer,
+                            netty-handler,
+                            netty-transport-native-unix-common,
+                            netty-transport-classes-epoll,
+                            netty-resolver,
+                            netty-resolver-dns
+                        </Embed-Dependency>
+                        
<Bundle-ClassPath>.,{maven-dependencies}</Bundle-ClassPath>
                     </instructions>
                 </configuration>
             </plugin>
@@ -138,18 +232,137 @@
             <artifactId>s3-transfer-manager</artifactId>
         </dependency>
         <dependency>
+            <groupId>software.amazon.awssdk</groupId>
             <artifactId>netty-nio-client</artifactId>
+        </dependency>
+
+        <!-- AWS SDK Core dependencies -->
+        <dependency>
+            <groupId>software.amazon.awssdk</groupId>
+            <artifactId>aws-xml-protocol</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>software.amazon.awssdk</groupId>
+            <artifactId>aws-query-protocol</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>software.amazon.awssdk</groupId>
+            <artifactId>protocol-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>software.amazon.awssdk</groupId>
+            <artifactId>arns</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>software.amazon.awssdk</groupId>
+            <artifactId>profiles</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>software.amazon.awssdk</groupId>
+            <artifactId>crt-core</artifactId>
+            <version>${aws.sdk.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>software.amazon.awssdk</groupId>
+            <artifactId>http-auth</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>software.amazon.awssdk</groupId>
+            <artifactId>identity-spi</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>software.amazon.awssdk</groupId>
+            <artifactId>http-auth-spi</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>software.amazon.awssdk</groupId>
+            <artifactId>http-auth-aws</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>software.amazon.awssdk</groupId>
+            <artifactId>checksums</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>software.amazon.awssdk</groupId>
+            <artifactId>checksums-spi</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>software.amazon.awssdk</groupId>
+            <artifactId>retries-spi</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>software.amazon.awssdk</groupId>
+            <artifactId>sdk-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>software.amazon.awssdk</groupId>
+            <artifactId>retries</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>software.amazon.awssdk</groupId>
+            <artifactId>auth</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>software.amazon.awssdk</groupId>
+            <artifactId>http-auth-aws-eventstream</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>software.amazon.awssdk</groupId>
+            <artifactId>http-client-spi</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>software.amazon.awssdk</groupId>
+            <artifactId>regions</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>software.amazon.awssdk</groupId>
+            <artifactId>annotations</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>software.amazon.awssdk</groupId>
+            <artifactId>utils</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>software.amazon.awssdk</groupId>
+            <artifactId>aws-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>software.amazon.awssdk</groupId>
+            <artifactId>utils-lite</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>software.amazon.awssdk</groupId>
+            <artifactId>metrics-spi</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>software.amazon.awssdk</groupId>
+            <artifactId>json-utils</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>software.amazon.awssdk</groupId>
+            <artifactId>third-party-jackson-core</artifactId>
+        </dependency>
+        <dependency>
             <groupId>software.amazon.awssdk</groupId>
+            <artifactId>endpoints-spi</artifactId>
         </dependency>
 
+        <!-- EventStream -->
         <dependency>
-            <groupId>com.fasterxml.jackson.core</groupId>
-            <artifactId>jackson-annotations</artifactId>
+            <groupId>software.amazon.eventstream</groupId>
+            <artifactId>eventstream</artifactId>
+            <version>1.0.1</version>
         </dependency>
+
         <!-- Netty -->
         <dependency>
             <groupId>io.netty</groupId>
-            <artifactId>netty-buffer</artifactId>
+            <artifactId>netty-codec-http</artifactId>
+            <version>${netty.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>io.netty</groupId>
+            <artifactId>netty-codec-http2</artifactId>
             <version>${netty.version}</version>
         </dependency>
         <dependency>
@@ -159,7 +372,12 @@
         </dependency>
         <dependency>
             <groupId>io.netty</groupId>
-            <artifactId>netty-codec-http</artifactId>
+            <artifactId>netty-codec-dns</artifactId>
+            <version>${netty.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>io.netty</groupId>
+            <artifactId>netty-transport</artifactId>
             <version>${netty.version}</version>
         </dependency>
         <dependency>
@@ -167,11 +385,26 @@
             <artifactId>netty-common</artifactId>
             <version>${netty.version}</version>
         </dependency>
+        <dependency>
+            <groupId>io.netty</groupId>
+            <artifactId>netty-buffer</artifactId>
+            <version>${netty.version}</version>
+        </dependency>
         <dependency>
             <groupId>io.netty</groupId>
             <artifactId>netty-handler</artifactId>
             <version>${netty.version}</version>
         </dependency>
+        <dependency>
+            <groupId>io.netty</groupId>
+            <artifactId>netty-transport-native-unix-common</artifactId>
+            <version>${netty.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>io.netty</groupId>
+            <artifactId>netty-transport-classes-epoll</artifactId>
+            <version>${netty.version}</version>
+        </dependency>
         <dependency>
             <groupId>io.netty</groupId>
             <artifactId>netty-resolver</artifactId>
@@ -179,10 +412,17 @@
         </dependency>
         <dependency>
             <groupId>io.netty</groupId>
-            <artifactId>netty-transport</artifactId>
+            <artifactId>netty-resolver-dns</artifactId>
             <version>${netty.version}</version>
         </dependency>
 
+        <!-- Reactive Streams -->
+        <dependency>
+            <groupId>org.reactivestreams</groupId>
+            <artifactId>reactive-streams</artifactId>
+            <version>1.0.4</version>
+        </dependency>
+
         <dependency>
             <groupId>com.google.guava</groupId>
             <artifactId>guava</artifactId>
diff --git a/oak-parent/pom.xml b/oak-parent/pom.xml
index 8520e026cf..535698c234 100644
--- a/oak-parent/pom.xml
+++ b/oak-parent/pom.xml
@@ -72,6 +72,7 @@
     <testcontainers.version>1.19.7</testcontainers.version>
     <groovy.version>2.5.23</groovy.version>
     <netty.version>4.1.127.Final</netty.version>
+    <aws.sdk.version>2.34.1</aws.sdk.version>
     <!-- determines the bytecode version (i.e. the minimum JRE required to run 
the build artifact) -->
     <javaTargetVersion>8</javaTargetVersion>
     <maven.compiler.release>${javaTargetVersion}</maven.compiler.release>
@@ -692,7 +693,7 @@
       <dependency>
         <groupId>software.amazon.awssdk</groupId>
         <artifactId>bom</artifactId>
-        <version>2.34.1</version>
+        <version>${aws.sdk.version}</version>
         <type>pom</type>
         <scope>import</scope>
       </dependency>

Reply via email to