diff --git a/packaging/hudi-trino-bundle/pom.xml b/packaging/hudi-trino-bundle/pom.xml
new file mode 100644
index 000000000..386369316
--- /dev/null
+++ b/packaging/hudi-trino-bundle/pom.xml
@@ -0,0 +1,273 @@
+
+
+
+
+ hudi
+ org.apache.hudi
+ 0.11.0-SNAPSHOT
+ ../../pom.xml
+
+ 4.0.0
+ hudi-trino-bundle
+ jar
+
+
+ true
+ ${project.parent.basedir}
+
+
+
+
+
+ org.apache.rat
+ apache-rat-plugin
+
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+ ${maven-shade-plugin.version}
+
+
+ package
+
+ shade
+
+
+ ${shadeSources}
+ ${project.build.directory}/dependency-reduced-pom.xml
+
+
+
+
+
+ true
+
+
+ META-INF/LICENSE
+ target/classes/META-INF/LICENSE
+
+
+
+
+ org.apache.hudi:hudi-common
+ org.apache.hudi:hudi-hadoop-mr
+
+ org.apache.parquet:parquet-avro
+ org.apache.avro:avro
+ org.codehaus.jackson:*
+ com.esotericsoftware:kryo-shaded
+ org.objenesis:objenesis
+ com.esotericsoftware:minlog
+ org.apache.hbase:hbase-client
+ org.apache.hbase:hbase-common
+ org.apache.hbase:hbase-protocol
+ org.apache.hbase:hbase-server
+ org.apache.hbase:hbase-annotations
+ org.apache.htrace:htrace-core
+ com.yammer.metrics:metrics-core
+ com.google.guava:guava
+ commons-lang:commons-lang
+ com.google.protobuf:protobuf-java
+
+
+
+
+
+ org.apache.avro.
+ org.apache.hudi.org.apache.avro.
+
+
+ org.codehaus.jackson.
+ org.apache.hudi.org.codehaus.jackson.
+
+
+ com.esotericsoftware.kryo.
+ org.apache.hudi.com.esotericsoftware.kryo.
+
+
+ org.objenesis.
+ org.apache.hudi.org.objenesis.
+
+
+ com.esotericsoftware.minlog.
+ org.apache.hudi.com.esotericsoftware.minlog.
+
+
+ com.yammer.metrics.
+ org.apache.hudi.com.yammer.metrics.
+
+
+ com.google.common.
+ ${trino.bundle.bootstrap.shade.prefix}com.google.common.
+
+
+ org.apache.commons.lang.
+ ${trino.bundle.bootstrap.shade.prefix}org.apache.commons.lang.
+
+
+ com.google.protobuf.
+ ${trino.bundle.bootstrap.shade.prefix}com.google.protobuf.
+
+
+ false
+
+
+ *:*
+
+ META-INF/*.SF
+ META-INF/*.DSA
+ META-INF/*.RSA
+ META-INF/services/javax.*
+
+
+
+ ${project.artifactId}-${project.version}
+
+
+
+
+
+
+
+ src/main/resources
+
+
+ src/test/resources
+
+
+
+
+
+
+
+ org.apache.hudi
+ hudi-common
+ ${project.version}
+
+
+ org.apache.hbase
+ hbase-server
+
+
+ org.apache.hbase
+ hbase-client
+
+
+
+
+ org.apache.hudi
+ hudi-hadoop-mr-bundle
+ ${project.version}
+
+
+ org.apache.hbase
+ hbase-server
+
+
+ org.apache.hbase
+ hbase-client
+
+
+
+
+
+
+ org.apache.hbase
+ hbase-shaded-client
+ ${hbase.version}
+ test
+
+
+
+ org.apache.hbase
+ hbase-shaded-server
+ ${hbase.version}
+
+ compile
+
+
+ javax.servlet
+ *
+
+
+ org.codehaus.jackson
+ *
+
+
+ org.mortbay.jetty
+ *
+
+
+ tomcat
+ *
+
+
+
+
+
+
+ org.apache.parquet
+ parquet-avro
+ compile
+
+
+
+ org.apache.avro
+ avro
+ compile
+
+
+
+
+ com.google.guava
+ guava
+ 12.0.1
+ ${trino.bundle.bootstrap.scope}
+
+
+
+
+ commons-lang
+ commons-lang
+ 2.6
+ ${trino.bundle.bootstrap.scope}
+
+
+
+
+ com.google.protobuf
+ protobuf-java
+ 2.5.0
+ ${trino.bundle.bootstrap.scope}
+
+
+
+
+
+ trino-shade-unbundle-bootstrap
+
+ provided
+
+
+
+
+
diff --git a/packaging/hudi-trino-bundle/src/main/java/org/apache/hudi/trino/bundle/Main.java b/packaging/hudi-trino-bundle/src/main/java/org/apache/hudi/trino/bundle/Main.java
new file mode 100644
index 000000000..eec1ecf88
--- /dev/null
+++ b/packaging/hudi-trino-bundle/src/main/java/org/apache/hudi/trino/bundle/Main.java
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hudi.trino.bundle;
+
+import org.apache.hudi.common.util.ReflectionUtils;
+
+/**
+ * A simple main class to dump all classes loaded in current classpath
+ *
+ * This is a workaround for generating sources and javadoc jars for packaging modules. The maven plugins for generating
+ * javadoc and sources plugins do not generate corresponding jars if there are no source files.
+ *
+ * This class does not have anything to do with Hudi but is there to keep mvn javadocs/source plugin happy.
+ */
+public class Main {
+
+ public static void main(String[] args) {
+ ReflectionUtils.getTopLevelClassesInClasspath(Main.class).forEach(System.out::println);
+ }
+}
diff --git a/pom.xml b/pom.xml
index 16298aa8f..a9891595a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -50,6 +50,7 @@
packaging/hudi-presto-bundle
packaging/hudi-utilities-bundle
packaging/hudi-timeline-server-bundle
+ packaging/hudi-trino-bundle
docker/hoodie/hadoop
hudi-integ-test
packaging/hudi-integ-test-bundle
@@ -147,15 +148,17 @@
UTF-8
${project.basedir}
provided
-
+
compile
org.apache.hudi.spark.
provided
-
+
-Xmx2g
0.8.5
compile
org.apache.hudi.
+ compile
+ org.apache.hudi.
true
2.7.1
4.7