Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions zeppelin-integration/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -185,6 +185,29 @@
<id>enforce-dependency-convergence</id>
<phase>none</phase>
</execution>
<execution>
<id>enforce-no-interpreter-shaded-leak</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<bannedDependencies>
<excludes>
<exclude>org.apache.zeppelin:zeppelin-interpreter-shaded</exclude>
</excludes>
<searchTransitive>true</searchTransitive>
<message>
zeppelin-interpreter-shaded must NOT appear on the zeppelin-integration test classpath.
MiniZeppelinServer instantiates ZeppelinServer in-process; mixing shaded and unshaded
org.eclipse.aether.* in the same JVM causes ClassCastException in
InterpreterSettingManager. See ZEPPELIN-6416.
</message>
</bannedDependencies>
</rules>
<fail>true</fail>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
Expand Down
12 changes: 7 additions & 5 deletions zeppelin-jupyter-interpreter/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -84,11 +84,13 @@
<artifactId>commons-codec</artifactId>
</dependency>

<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>zeppelin-interpreter-shaded</artifactId>
<version>${project.version}</version>
</dependency>
<!--
zeppelin-interpreter-shaded is inherited from zeppelin-interpreter-parent with <scope>provided</scope>.
Do NOT re-declare it here without that scope (ZEPPELIN-6416): doing so silently downgrades it to
the default compile scope and leaks the shaded jar into transitive consumers (e.g. spark-interpreter,
and onward into zeppelin-integration's test classpath), which causes ClassCastException between
shaded and unshaded org.eclipse.aether.repository.RemoteRepository inside InterpreterSettingManager.
-->

<dependency>
<groupId>${project.groupId}</groupId>
Expand Down
31 changes: 31 additions & 0 deletions zeppelin-server/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -593,6 +593,37 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
</plugin>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<executions>
<execution>
<id>enforce-no-interpreter-shaded-leak</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<bannedDependencies>
<excludes>
<exclude>org.apache.zeppelin:zeppelin-interpreter-shaded</exclude>
</excludes>
<searchTransitive>true</searchTransitive>
<message>
zeppelin-interpreter-shaded must NOT appear on the zeppelin-server classpath.
The shaded jar is meant for interpreter JVMs only (loaded from
${ZEPPELIN_HOME}/interpreter/zeppelin-interpreter-shaded-*.jar). Mixing the shaded
and unshaded org.eclipse.aether.* on the server classpath causes ClassCastException
in InterpreterSettingManager. See ZEPPELIN-6416.
</message>
</bannedDependencies>
</rules>
<fail>true</fail>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>

Expand Down
Loading