You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zeppelin.apache.org by pd...@apache.org on 2021/10/18 09:58:52 UTC

[zeppelin] 02/06: Use shaded classifier in zeppelin-interpreter

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

pdallig pushed a commit to branch interpreter_shade
in repository https://gitbox.apache.org/repos/asf/zeppelin.git

commit 7082b3eff6552a04ec935c30d5e85d8fb363c872
Author: Philipp Dallig <ph...@gmail.com>
AuthorDate: Fri Oct 15 14:24:23 2021 +0200

    Use shaded classifier in zeppelin-interpreter
---
 bin/interpreter.sh                  |   4 +-
 pom.xml                             |   1 -
 zeppelin-interpreter-parent/pom.xml |   3 +-
 zeppelin-interpreter-shaded/pom.xml | 243 ------------------------------------
 zeppelin-interpreter/pom.xml        | 165 ++++++++++++++++++++++++
 zeppelin-zengine/pom.xml            |   3 +-
 6 files changed, 171 insertions(+), 248 deletions(-)

diff --git a/bin/interpreter.sh b/bin/interpreter.sh
index 6d9c048..d1193ca 100755
--- a/bin/interpreter.sh
+++ b/bin/interpreter.sh
@@ -103,7 +103,7 @@ fi
 
 check_java_version
 
-ZEPPELIN_INTERPRETER_API_JAR=$(find "${ZEPPELIN_HOME}/interpreter" -name 'zeppelin-interpreter-shaded-*.jar')
+ZEPPELIN_INTERPRETER_API_JAR=$(find "${ZEPPELIN_HOME}/interpreter" -name 'zeppelin-interpreter-*.jar')
 ZEPPELIN_INTP_CLASSPATH+=":${CLASSPATH}:${ZEPPELIN_INTERPRETER_API_JAR}"
 
 # construct classpath
@@ -117,7 +117,7 @@ if [[ -d "${ZEPPELIN_HOME}/zeppelin-zengine/target/test-classes" ]]; then
   addJarInDirForIntp "${ZEPPELIN_HOME}/zeppelin-zengine/target/test-classes"
 fi
 
-addJarInDirForIntp "${ZEPPELIN_HOME}/zeppelin-interpreter-shaded/target"
+addJarInDirForIntp "${ZEPPELIN_HOME}/zeppelin-interpreter/target"
 
 HOSTNAME=$(hostname)
 ZEPPELIN_SERVER=org.apache.zeppelin.interpreter.remote.RemoteInterpreterServer
diff --git a/pom.xml b/pom.xml
index 2ae79ba..83ce87f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -54,7 +54,6 @@
   <modules>
     <module>zeppelin-interpreter-parent</module>
     <module>zeppelin-interpreter</module>
-    <module>zeppelin-interpreter-shaded</module>
     <module>zeppelin-zengine</module>
     <module>zeppelin-display</module>
     <module>rlang</module>
diff --git a/zeppelin-interpreter-parent/pom.xml b/zeppelin-interpreter-parent/pom.xml
index fd68af7..6b5950b 100644
--- a/zeppelin-interpreter-parent/pom.xml
+++ b/zeppelin-interpreter-parent/pom.xml
@@ -34,7 +34,8 @@
   <dependencies>
     <dependency>
       <groupId>${project.groupId}</groupId>
-      <artifactId>zeppelin-interpreter-shaded</artifactId>
+      <artifactId>zeppelin-interpreter</artifactId>
+      <classifier>shaded</classifier>
       <version>${project.version}</version>
       <scope>provided</scope>
     </dependency>
diff --git a/zeppelin-interpreter-shaded/pom.xml b/zeppelin-interpreter-shaded/pom.xml
deleted file mode 100644
index f3f158d..0000000
--- a/zeppelin-interpreter-shaded/pom.xml
+++ /dev/null
@@ -1,243 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ 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.
-  -->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
-
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <artifactId>zeppelin</artifactId>
-    <groupId>org.apache.zeppelin</groupId>
-    <version>0.11.0-SNAPSHOT</version>
-  </parent>
-
-  <artifactId>zeppelin-interpreter-shaded</artifactId>
-  <packaging>jar</packaging>
-  <name>Zeppelin: Interpreter Shaded</name>
-  <description>Zeppelin Interpreter Shaded</description>
-
-  <properties>
-    <shaded.dependency.prefix>shaded</shaded.dependency.prefix>
-  </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.zeppelin</groupId>
-      <artifactId>zeppelin-interpreter</artifactId>
-      <version>0.11.0-SNAPSHOT</version>
-      <optional>true</optional>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <!-- This is a hack for intellij, because this IDE is not able to use the shaded jar as dependency
-         See: https://youtrack.jetbrains.com/issue/IDEA-93855 -->
-    <sourceDirectory>${project.build.directory}/shaded-sources</sourceDirectory>
-    <plugins>
-      <!-- This shade module has no own source code -->
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-source-plugin</artifactId>
-        <executions>
-          <execution>
-            <id>attach-sources</id>
-            <phase>none</phase>
-            <goals>
-              <goal>jar-no-fork</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-      <!-- This shade module has nothing to compile -->
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-compiler-plugin</artifactId>
-        <executions>
-          <execution>
-            <id>default-compile</id>
-            <phase>none</phase>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-shade-plugin</artifactId>
-        <configuration>
-          <createSourcesJar>true</createSourcesJar>
-          <shadeSourcesContent>true</shadeSourcesContent>
-          <createDependencyReducedPom>false</createDependencyReducedPom>
-          <artifactSet>
-            <excludes>
-              <!-- Leave slf4j unshaded so downstream users can configure logging. -->
-              <exclude>org.slf4j:slf4j-api</exclude>
-              <exclude>org.slf4j:slf4j-log4j12</exclude>
-              <exclude>org.slf4j:jcl-over-slf4j</exclude>
-              <!-- Leave log4j unshaded so downstream users can configure logging. -->
-              <exclude>log4j:log4j</exclude>
-            </excludes>
-          </artifactSet>
-          <filters>
-            <filter>
-              <artifact>*:*</artifact>
-              <excludes>
-                <exclude>META-INF/*.SF</exclude>
-                <exclude>META-INF/*.DSA</exclude>
-                <exclude>META-INF/*.RSA</exclude>
-                <exclude>module-info.class</exclude>
-                <exclude>module-info.java</exclude>
-              </excludes>
-            </filter>
-          </filters>
-          <transformers>
-            <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
-            <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
-              <resource>reference.conf</resource>
-            </transformer>
-            <transformer implementation="org.apache.maven.plugins.shade.resource.ApacheLicenseResourceTransformer"/>
-            <transformer implementation="org.apache.maven.plugins.shade.resource.DontIncludeResourceTransformer">
-              <resource>NOTICE.txt</resource>
-            </transformer>
-            <transformer implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer">
-              <resource>META-INF/LICENSE.txt</resource>
-              <file>${basedir}/../../LICENSE.txt</file>
-            </transformer>
-            <transformer implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer">
-              <resource>META-INF/NOTICE.txt</resource>
-              <file>${basedir}/../../NOTICE.txt</file>
-            </transformer>
-          </transformers>
-          <relocations>
-            <relocation>
-              <pattern>org</pattern>
-              <shadedPattern>${shaded.dependency.prefix}.org</shadedPattern>
-              <excludes>
-                <exclude>org.apache.zeppelin.**</exclude>
-                <exclude>org.apache.zeppelin</exclude>
-                <exclude>org.apache.hadoop.**</exclude>
-                <exclude>org.apache.hadoop</exclude>
-                <exclude>org.slf4j.**</exclude>
-                <exclude>org.slf4j</exclude>
-                <exclude>org.apache.commons.logging.**</exclude>
-                <exclude>org.apache.commons.logging</exclude>
-                <exclude>org.apache.commons.exec.**</exclude>
-                <exclude>org.apache.commons.exec</exclude>
-                <exclude>org.apache.log4j.**</exclude>
-                <exclude>org.apache.log4j</exclude>
-                <exclude>org.sonatype.**</exclude>
-                <exclude>org.sonatype</exclude>
-
-                <!-- Not the org packages that are a part of the jdk
-                     https://docs.oracle.com/javase/8/docs/api/index.html -->
-                <exclude>org.ietf.jgss.**</exclude>
-                <exclude>org.ietf.jgss</exclude>
-                <exclude>org.omg.**</exclude>
-                <exclude>org.omg</exclude>
-                <exclude>org.w3c.dom.**</exclude>
-                <exclude>org.w3c.dom</exclude>
-                <exclude>org.xml.sax.**</exclude>
-                <exclude>org.xml.sax</exclude>
-              </excludes>
-            </relocation>
-            <relocation>
-              <pattern>com.google</pattern>
-              <shadedPattern>${shaded.dependency.prefix}.com.google</shadedPattern>
-            </relocation>
-            <relocation>
-              <pattern>io</pattern>
-              <shadedPattern>${shaded.dependency.prefix}.io</shadedPattern>
-            </relocation>
-            <relocation>
-              <pattern>com.esotericsoftware</pattern>
-              <shadedPattern>${shaded.dependency.prefix}.com.esotericsoftware</shadedPattern>
-            </relocation>
-          </relocations>
-        </configuration>
-        <executions>
-          <execution>
-            <phase>package</phase>
-            <goals>
-              <goal>shade</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-antrun-plugin</artifactId>
-        <executions>
-          <execution>
-            <id>copy-to-interpreter</id>
-            <phase>package</phase>
-            <goals>
-              <goal>run</goal>
-            </goals>
-            <configuration>
-              <target>
-                <echo>ANT TASK - copying files....</echo>
-                <copy todir="${project.basedir}/../interpreter" overwrite="true" flatten="true">
-                  <fileset dir="${project.build.directory}" includes="zeppelin-interpreter-shaded-${project.version}.jar" >
-                  </fileset>
-                </copy>
-              </target>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-
-      <!-- This is a hack for intellij, because this IDE is not able to use the shaded jar as dependency
-           See: https://youtrack.jetbrains.com/issue/IDEA-93855 -->
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-dependency-plugin</artifactId>
-        <executions>
-          <execution>
-            <id>unpack</id>
-            <phase>package</phase>
-            <goals>
-              <goal>unpack</goal>
-            </goals>
-            <configuration>
-              <artifactItems>
-                <artifactItem>
-                  <groupId>org.apache.zeppelin</groupId>
-                  <artifactId>zeppelin-interpreter-shaded</artifactId>
-                  <version>${project.version}</version>
-                  <type>jar</type>
-                  <outputDirectory>${project.build.directory}/classes</outputDirectory>
-                  <includes>**/**</includes>
-                </artifactItem>
-                <artifactItem>
-                  <groupId>org.apache.zeppelin</groupId>
-                  <artifactId>zeppelin-interpreter-shaded</artifactId>
-                  <version>${project.version}</version>
-                  <type>jar</type>
-                  <classifier>sources</classifier>
-                  <overWrite>true</overWrite>
-                  <outputDirectory>${project.build.directory}/shaded-sources</outputDirectory>
-                  <includes>**/**</includes>
-                </artifactItem>
-              </artifactItems>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-
-</project>
diff --git a/zeppelin-interpreter/pom.xml b/zeppelin-interpreter/pom.xml
index aff54ed..7cd4a1a 100644
--- a/zeppelin-interpreter/pom.xml
+++ b/zeppelin-interpreter/pom.xml
@@ -41,8 +41,17 @@
     <sisu.plexus.version>0.3.4</sisu.plexus.version>
     <jline.version>2.14.3</jline.version>
     <atomix.version>3.0.0-rc4</atomix.version>
+    <shaded.dependency.prefix>shaded</shaded.dependency.prefix>
   </properties>
 
+  <!-- Do get maven-shade snapshot version -->
+  <pluginRepositories>
+    <pluginRepository>
+      <id>apache.snapshots</id>
+      <url>https://repository.apache.org/snapshots/</url>
+    </pluginRepository>
+  </pluginRepositories>
+
   <dependencies>
     <dependency>
       <groupId>${project.groupId}</groupId>
@@ -145,6 +154,10 @@
       <groupId>org.slf4j</groupId>
       <artifactId>jcl-over-slf4j</artifactId>
     </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
 
     <!-- maven dependency resolution -->
     <dependency>
@@ -235,6 +248,158 @@
         <filtering>true</filtering>
       </resource>
     </resources>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-shade-plugin</artifactId>
+        <version>3.3.1-SNAPSHOT</version>
+        <configuration>
+          <createSourcesJar>true</createSourcesJar>
+          <shadeSourcesContent>true</shadeSourcesContent>
+          <shadedArtifactAttached>true</shadedArtifactAttached>
+          <createDependencyReducedPom>true</createDependencyReducedPom>
+          <useDependencyReducedPomInJar>true</useDependencyReducedPomInJar>
+          <artifactSet>
+            <excludes>
+              <!-- Leave slf4j unshaded so downstream users can configure logging. -->
+              <exclude>org.slf4j:slf4j-api</exclude>
+              <exclude>org.slf4j:slf4j-log4j12</exclude>
+              <exclude>org.slf4j:jcl-over-slf4j</exclude>
+              <!-- Leave log4j unshaded so downstream users can configure logging. -->
+              <exclude>log4j:log4j</exclude>
+            </excludes>
+          </artifactSet>
+          <filters>
+            <filter>
+              <artifact>*:*</artifact>
+              <excludes>
+                <exclude>META-INF/*.SF</exclude>
+                <exclude>META-INF/*.DSA</exclude>
+                <exclude>META-INF/*.RSA</exclude>
+                <exclude>module-info.class</exclude>
+                <exclude>module-info.java</exclude>
+              </excludes>
+            </filter>
+          </filters>
+          <transformers>
+            <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
+            <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
+              <resource>reference.conf</resource>
+            </transformer>
+            <transformer implementation="org.apache.maven.plugins.shade.resource.ApacheLicenseResourceTransformer"/>
+            <transformer implementation="org.apache.maven.plugins.shade.resource.DontIncludeResourceTransformer">
+              <resource>NOTICE.txt</resource>
+            </transformer>
+            <transformer implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer">
+              <resource>META-INF/LICENSE.txt</resource>
+              <file>${basedir}/../../LICENSE.txt</file>
+            </transformer>
+            <transformer implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer">
+              <resource>META-INF/NOTICE.txt</resource>
+              <file>${basedir}/../../NOTICE.txt</file>
+            </transformer>
+          </transformers>
+          <relocations>
+            <relocation>
+              <pattern>org</pattern>
+              <shadedPattern>${shaded.dependency.prefix}.org</shadedPattern>
+              <excludes>
+                <exclude>org.apache.zeppelin.**</exclude>
+                <exclude>org.apache.zeppelin</exclude>
+                <exclude>org.apache.hadoop.**</exclude>
+                <exclude>org.apache.hadoop</exclude>
+                <exclude>org.slf4j.**</exclude>
+                <exclude>org.slf4j</exclude>
+                <exclude>org.apache.commons.logging.**</exclude>
+                <exclude>org.apache.commons.logging</exclude>
+                <exclude>org.apache.commons.exec.**</exclude>
+                <exclude>org.apache.commons.exec</exclude>
+                <exclude>org.apache.log4j.**</exclude>
+                <exclude>org.apache.log4j</exclude>
+                <exclude>org.sonatype.**</exclude>
+                <exclude>org.sonatype</exclude>
+
+                <!-- Not the org packages that are a part of the jdk
+                     https://docs.oracle.com/javase/8/docs/api/index.html -->
+                <exclude>org.ietf.jgss.**</exclude>
+                <exclude>org.ietf.jgss</exclude>
+                <exclude>org.omg.**</exclude>
+                <exclude>org.omg</exclude>
+                <exclude>org.w3c.dom.**</exclude>
+                <exclude>org.w3c.dom</exclude>
+                <exclude>org.xml.sax.**</exclude>
+                <exclude>org.xml.sax</exclude>
+              </excludes>
+            </relocation>
+            <relocation>
+              <pattern>com.google</pattern>
+              <shadedPattern>${shaded.dependency.prefix}.com.google</shadedPattern>
+            </relocation>
+            <relocation>
+              <pattern>io</pattern>
+              <shadedPattern>${shaded.dependency.prefix}.io</shadedPattern>
+            </relocation>
+            <relocation>
+              <pattern>com.esotericsoftware</pattern>
+              <shadedPattern>${shaded.dependency.prefix}.com.esotericsoftware</shadedPattern>
+            </relocation>
+          </relocations>
+        </configuration>
+        <executions>
+          <execution>
+            <phase>package</phase>
+            <goals>
+              <goal>shade</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-antrun-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>copy-to-interpreter</id>
+            <phase>package</phase>
+            <goals>
+              <goal>run</goal>
+            </goals>
+            <configuration>
+              <target>
+                <echo>ANT TASK - copying files....</echo>
+                <copy todir="${project.basedir}/../interpreter" overwrite="true" flatten="true">
+                  <fileset dir="${project.build.directory}" includes="zeppelin-interpreter-${project.version}-shaded.jar" >
+                  </fileset>
+                </copy>
+              </target>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      <!-- IDEA workaround see https://youtrack.jetbrains.com/issue/IDEA-126596 -->
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>build-helper-maven-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>compile</id>
+            <phase>package</phase>
+            <goals>
+              <goal>attach-artifact</goal>
+            </goals>
+            <configuration>
+              <artifacts>
+                <artifact>
+                  <file>${basedir}/target/${project.artifactId}-${project.version}-shaded.jar</file>
+                  <type>jar</type>
+                  <classifier>optional</classifier>
+                </artifact>
+              </artifacts>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
   </build>
 
 </project>
diff --git a/zeppelin-zengine/pom.xml b/zeppelin-zengine/pom.xml
index 0402e4f..03ab277 100644
--- a/zeppelin-zengine/pom.xml
+++ b/zeppelin-zengine/pom.xml
@@ -49,7 +49,8 @@
 
     <dependency>
       <groupId>${project.groupId}</groupId>
-      <artifactId>zeppelin-interpreter-shaded</artifactId>
+      <artifactId>zeppelin-interpreter</artifactId>
+      <classifier>shaded</classifier>
       <version>${project.version}</version>
     </dependency>