diff --git a/pom.xml b/pom.xml
index 54744a253bb2b..68069aeacb6c1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -2586,6 +2586,7 @@ flexible messaging model and an intuitive client API.
pulsar-metadata
jetcd-core-shaded
jclouds-shaded
+ pulsar-client-dependencies-minimized
pulsar-package-management
@@ -2651,6 +2652,7 @@ flexible messaging model and an intuitive client API.
distribution
pulsar-metadata
jetcd-core-shaded
+ pulsar-client-dependencies-minimized
pulsar-package-management
diff --git a/pulsar-client-admin-shaded/pom.xml b/pulsar-client-admin-shaded/pom.xml
index 74ced063fbfd4..d6160609809f8 100644
--- a/pulsar-client-admin-shaded/pom.xml
+++ b/pulsar-client-admin-shaded/pom.xml
@@ -34,6 +34,17 @@
${project.groupId}
pulsar-client-admin-original
${project.version}
+
+
+ it.unimi.dsi
+ fastutil
+
+
+
+
+ ${project.groupId}
+ pulsar-client-dependencies-minimized
+ ${project.version}
${project.groupId}
@@ -150,6 +161,7 @@
org.objenesis:*
org.reactivestreams:reactive-streams
org.yaml:snakeyaml
+ org.apache.pulsar:pulsar-client-dependencies-minimized
com.fasterxml.jackson.core:jackson-annotations
@@ -269,6 +281,10 @@
io.swagger
org.apache.pulsar.shade.io.swagger
+
+ it.unimi.dsi.fastutil
+ org.apache.pulsar.shade.it.unimi.dsi.fastutil
+
javassist
org.apache.pulsar.shade.javassist
diff --git a/pulsar-client-all/pom.xml b/pulsar-client-all/pom.xml
index f226ac57588fd..962b6e0fa6bbd 100644
--- a/pulsar-client-all/pom.xml
+++ b/pulsar-client-all/pom.xml
@@ -39,6 +39,17 @@
${project.groupId}
pulsar-client-original
${project.version}
+
+
+ it.unimi.dsi
+ fastutil
+
+
+
+
+ ${project.groupId}
+ pulsar-client-dependencies-minimized
+ ${project.version}
${project.groupId}
@@ -200,7 +211,7 @@
org.reactivestreams:reactive-streams
org.tukaani:xz
org.yaml:snakeyaml
- it.unimi.dsi:fastutil
+ org.apache.pulsar:pulsar-client-dependencies-minimized
com.fasterxml.jackson.core:jackson-annotations
@@ -318,6 +329,10 @@
io.swagger
org.apache.pulsar.shade.io.swagger
+
+ it.unimi.dsi.fastutil
+ org.apache.pulsar.shade.it.unimi.dsi.fastutil
+
javassist
org.apache.pulsar.shade.javassist
diff --git a/pulsar-client-dependencies-minimized/pom.xml b/pulsar-client-dependencies-minimized/pom.xml
new file mode 100644
index 0000000000000..e838fedfddca5
--- /dev/null
+++ b/pulsar-client-dependencies-minimized/pom.xml
@@ -0,0 +1,100 @@
+
+
+
+ 4.0.0
+
+ org.apache.pulsar
+ pulsar
+ 4.1.0-SNAPSHOT
+
+
+ pulsar-client-dependencies-minimized
+ Apache Pulsar :: Client :: Dependencies minimized
+ This module is used in `pulsar-client-all`, `pulsar-client-shaded`, and `pulsar-client-admin-shaded`
+ to minimize the number of classes included in the shaded jars for specific dependencies.
+ Currently, it is used to minimize the classes included from `fastutil`.
+
+
+
+ ${project.groupId}
+ pulsar-client-original
+ ${project.version}
+
+
+
+ ${project.artifactId}-${project.version}
+
+
+ org.apache.maven.plugins
+ maven-deploy-plugin
+
+
+ true
+
+
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+
+
+ package
+
+ shade
+
+
+ true
+ false
+
+ true
+
+
+
+ org.apache.pulsar:pulsar-client-original
+
+ it.unimi.dsi:fastutil
+
+
+
+
+
+ org.apache.pulsar:pulsar-client-original
+
+ **
+
+
+ **
+
+
+
+
+
+
+
+
+
+
diff --git a/pulsar-client-shaded/pom.xml b/pulsar-client-shaded/pom.xml
index 47c6ac835054f..e538af6f3ec94 100644
--- a/pulsar-client-shaded/pom.xml
+++ b/pulsar-client-shaded/pom.xml
@@ -39,6 +39,17 @@
${project.groupId}
pulsar-client-original
${project.version}
+
+
+ it.unimi.dsi
+ fastutil
+
+
+
+
+ ${project.groupId}
+ pulsar-client-dependencies-minimized
+ ${project.version}
${project.groupId}
@@ -164,7 +175,7 @@
org.reactivestreams:reactive-streams
org.tukaani:xz
org.yaml:snakeyaml
- it.unimi.dsi:fastutil
+ org.apache.pulsar:pulsar-client-dependencies-minimized
com.fasterxml.jackson.core:jackson-annotations
@@ -264,6 +275,10 @@
io.swagger
org.apache.pulsar.shade.io.swagger
+
+ it.unimi.dsi.fastutil
+ org.apache.pulsar.shade.it.unimi.dsi.fastutil
+
javax.activation
org.apache.pulsar.shade.javax.activation