You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@heron.apache.org by ni...@apache.org on 2022/05/02 06:32:34 UTC

[incubator-heron] branch master updated: Publish unshaded Maven artifacts with dependencies (#3778)

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

nicknezis pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
     new c12b3c675a5 Publish unshaded Maven artifacts with dependencies (#3778)
c12b3c675a5 is described below

commit c12b3c675a5ade8574e33aee6d5a85d2dfa6aea0
Author: Josh Fischer <jo...@joshfischer.io>
AuthorDate: Mon May 2 01:32:29 2022 -0500

    Publish unshaded Maven artifacts with dependencies (#3778)
    
    Co-authored-by: Nicholas Nezis <ni...@gmail.com>
---
 release/maven/heron-kafka.template.pom     |   1 +
 release/maven/heron-no-kryo.template.pom   |   4 ++
 release/maven/heron-with-kryo.template.pom |   1 +
 release/maven/maven-pom-version.sh         | 111 +++++++++++++++++++++++++++--
 scripts/ci/build_maven_artifacts.sh        |   2 +-
 5 files changed, 112 insertions(+), 7 deletions(-)

diff --git a/release/maven/heron-kafka.template.pom b/release/maven/heron-kafka.template.pom
index 3ffa9f8352e..1aad1707876 100644
--- a/release/maven/heron-kafka.template.pom
+++ b/release/maven/heron-kafka.template.pom
@@ -60,6 +60,7 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/ma
       <artifactId>kafka-clients</artifactId>
       <version>2.2.0</version>
     </dependency>
+    DEPS
   </dependencies>
 
   <mailingLists>
diff --git a/release/maven/heron-no-kryo.template.pom b/release/maven/heron-no-kryo.template.pom
index 3b40a26bd40..7ab1c39f4d3 100644
--- a/release/maven/heron-no-kryo.template.pom
+++ b/release/maven/heron-no-kryo.template.pom
@@ -32,6 +32,10 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/ma
     </license>
   </licenses>
 
+    <dependencies>
+        DEPS
+    </dependencies>
+
   <mailingLists>
     <mailingList>
         <name>Heron user mailing list</name>
diff --git a/release/maven/heron-with-kryo.template.pom b/release/maven/heron-with-kryo.template.pom
index 8bb0d640d81..186fc766ad0 100644
--- a/release/maven/heron-with-kryo.template.pom
+++ b/release/maven/heron-with-kryo.template.pom
@@ -39,6 +39,7 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/ma
       <version>5.3.0</version>
       <scope>compile</scope>
     </dependency>
+    DEPS
   </dependencies>
 
   <mailingLists>
diff --git a/release/maven/maven-pom-version.sh b/release/maven/maven-pom-version.sh
index b9e8901c004..92580464449 100755
--- a/release/maven/maven-pom-version.sh
+++ b/release/maven/maven-pom-version.sh
@@ -27,40 +27,139 @@ cat ./maven/heron-no-kryo.template.pom | \
     sed "s/VERSION/$1/g" | \
     sed "s/ARTIFACT_ID/heron-api/g" | \
     sed "s/NAME/heron-api/g" | \
-    sed "s/DESCRIPTION/Heron API/g" \
+    sed "s/DESCRIPTION/Heron API/g" | \
+    awk '{gsub("DEPS", "<dependency>\
+                          <groupId>org.apache.commons</groupId>\
+                            <artifactId>commons-lang3</artifactId>\
+                            <version>3.12.0</version>\
+                        </dependency>\
+                        <dependency>\
+                            <groupId>org.glassfish.jersey.media</groupId>\
+                             <artifactId>jersey-media-jaxb</artifactId>\
+                              <version>2.25.1</version>\
+                        </dependency>", $0); print}' | \
+    xmllint --format - \
     >> ./heron-api-$1.pom
 
 cat ./maven/heron-no-kryo.template.pom | \
     sed "s/VERSION/$1/g" | \
     sed "s/ARTIFACT_ID/heron-spi/g" | \
     sed "s/NAME/heron-spi/g" | \
-    sed "s/DESCRIPTION/Heron SPI/g" \
+    sed "s/DESCRIPTION/Heron SPI/g" | \
+    awk '{gsub("DEPS", "<dependency>\
+                            <groupId>org.apache.heron</groupId>\
+                            <artifactId>heron-api</artifactId>\
+                            <version>HERON_API_VERSION</version>\
+                        </dependency>\
+                        <dependency>\
+                            <groupId>com.google.protobuf</groupId>\
+                            <artifactId>protobuf-java</artifactId>\
+                            <version>3.19.1</version>\
+                        </dependency>\
+                         <dependency>\
+                             <groupId>com.google.guava</groupId>\
+                             <artifactId>guava</artifactId>\
+                             <version>23.6-jre</version>\
+                         </dependency>\
+                         <dependency>\
+                             <groupId>org.yaml</groupId>\
+                             <artifactId>snakeyaml</artifactId>\
+                             <version>1.29</version>\
+                         </dependency>", $0); print}' | \
+    sed "s/HERON_API_VERSION/$1/g" | \
+    xmllint --format - \
     >> ./heron-spi-$1.pom
 
 cat ./maven/heron-with-kryo.template.pom | \
     sed "s/VERSION/$1/g" | \
     sed "s/ARTIFACT_ID/heron-storm/g" | \
     sed "s/NAME/heron-storm/g" | \
-    sed "s/DESCRIPTION/Heron Storm/g" \
+    sed "s/DESCRIPTION/Heron Storm/g" | \
+    awk '{gsub("DEPS", "<dependency>\
+                            <groupId>org.apache.heron</groupId>\
+                            <artifactId>heron-api</artifactId>\
+                            <version>HERON_API_VERSION</version>\
+                        </dependency>\
+                        <dependency>\
+                        <groupId>org.apache.commons</groupId>\
+                            <artifactId>commons-lang3</artifactId>\
+                            <version>3.12.0</version>\
+                        </dependency>\
+                        <dependency>\
+                           <groupId>org.yaml</groupId>\
+                           <artifactId>snakeyaml</artifactId>\
+                           <version>1.29</version>\
+                         </dependency>\
+                         <dependency>\
+                             <groupId>com.googlecode.json-simple</groupId>\
+                             <artifactId>json-simple</artifactId>\
+                             <version>1.1</version>\
+                         </dependency>", $0); print}' | \
+    sed "s/HERON_API_VERSION/$1/g" | \
+    xmllint --format - \
     >> ./heron-storm-$1.pom
 
 cat ./maven/heron-with-kryo.template.pom | \
     sed "s/VERSION/$1/g" | \
     sed "s/ARTIFACT_ID/heron-simulator/g" | \
     sed "s/NAME/heron-simulator/g" | \
-    sed "s/DESCRIPTION/Heron Simulator/g" \
+    sed "s/DESCRIPTION/Heron Simulator/g" | \
+    awk '{gsub("DEPS", "<dependency>\
+                            <groupId>org.apache.heron</groupId>\
+                            <artifactId>heron-api</artifactId>\
+                            <version>HERON_API_VERSION</version>\
+                        </dependency>\
+                        <dependency>\
+                          <groupId>org.apache.commons</groupId>\
+                            <artifactId>commons-lang3</artifactId>\
+                            <version>3.12.0</version>\
+                        </dependency>\
+                        <dependency>\
+                           <groupId>org.yaml</groupId>\
+                           <artifactId>snakeyaml</artifactId>\
+                           <version>1.29</version>\
+                        </dependency>\
+                        <dependency>\
+                            <groupId>org.glassfish.jersey.media</groupId>\
+                             <artifactId>jersey-media-jaxb</artifactId>\
+                              <version>2.25.1</version>\
+                        </dependency>", $0); print}' | \
+    sed "s/HERON_API_VERSION/$1/g" | \
+    xmllint --format - \
     >> ./heron-simulator-$1.pom
 
 cat ./maven/heron-kafka.template.pom | \
     sed "s/VERSION/$1/g" | \
     sed "s/ARTIFACT_ID/heron-kafka-spout/g" | \
     sed "s/NAME/heron-kafka-spout/g" | \
-    sed "s/DESCRIPTION/Heron Kafka Spout/g" \
+    sed "s/DESCRIPTION/Heron Kafka Spout/g" | \
+    awk '{gsub("DEPS", "<dependency>\
+                              <groupId>org.slf4j</groupId>\
+                              <artifactId>slf4j-jdk14</artifactId>\
+                              <version>1.7.30</version>\
+                          </dependency>\
+                           <dependency>\
+                               <groupId>org.slf4j</groupId>\
+                               <artifactId>slf4j-api</artifactId>\
+                               <version>1.7.30</version>\
+                           </dependency>", $0); print}' | \
+    xmllint --format - \
     >> ./heron-kafka-spout-$1.pom
 
 cat ./maven/heron-kafka.template.pom | \
     sed "s/VERSION/$1/g" | \
     sed "s/ARTIFACT_ID/heron-kafka-bolt/g" | \
     sed "s/NAME/heron-kafka-bolt/g" | \
-    sed "s/DESCRIPTION/Heron Kafka Bolt/g" \
+    sed "s/DESCRIPTION/Heron Kafka Bolt/g" | \
+    awk '{gsub("DEPS", "<dependency>\
+                            <groupId>org.slf4j</groupId>\
+                            <artifactId>slf4j-jdk14</artifactId>\
+                            <version>1.7.30</version>\
+                        </dependency>\
+                         <dependency>\
+                             <groupId>org.slf4j</groupId>\
+                             <artifactId>slf4j-api</artifactId>\
+                             <version>1.7.30</version>\
+                         </dependency>", $0); print}' | \
+    xmllint --format - \
     >> ./heron-kafka-bolt-$1.pom
diff --git a/scripts/ci/build_maven_artifacts.sh b/scripts/ci/build_maven_artifacts.sh
index f9fda6f8a4f..6b89ba6a308 100644
--- a/scripts/ci/build_maven_artifacts.sh
+++ b/scripts/ci/build_maven_artifacts.sh
@@ -69,7 +69,7 @@ mkdir -p $OUTPUT_DIR/$VERSION_TAG/heron-kafka-bolt
 
 echo "Copy heron-api artifacts ... "
 cp -p -f ./release/heron-api-$VERSION_TAG.pom $OUTPUT_DIR/$VERSION_TAG/heron-api/
-cp -p -f ./bazel-bin/heron/api/src/java/api-shaded.jar $OUTPUT_DIR/$VERSION_TAG/heron-api/heron-api-$VERSION_TAG.jar
+cp -p -f ./bazel-bin/heron/api/src/java/api-java-low-level-functional.jar $OUTPUT_DIR/$VERSION_TAG/heron-api/heron-api-$VERSION_TAG.jar
 cp -p -f ./bazel-bin/heron/api/src/java/heron-api-javadoc.zip $OUTPUT_DIR/$VERSION_TAG/heron-api/heron-api-$VERSION_TAG-javadoc.jar
 cp -p -f ./bazel-bin/heron/api/src/java/libapi-java-low-level-functional-src.jar $OUTPUT_DIR/$VERSION_TAG/heron-api/heron-api-$VERSION_TAG-sources.jar