Skip to content

Commit a3f6c67

Browse files
jongyoulclaude
andcommitted
[ZEPPELIN-6400] Remove ZeppelinConfiguration dependency from zeppelin-interpreter module
Move ZeppelinConfiguration to zeppelin-zengine so it is no longer included in the shaded interpreter JAR. This prevents the Maven shade plugin from corrupting config string literals, which caused classpath- order-dependent configuration loading failures. Key changes: - Replace ZeppelinConfiguration usage in zeppelin-interpreter with Properties-based configuration - Update InterpreterLauncher, LifecycleManager, RecoveryStorage, DependencyResolver to accept Properties instead of ZeppelinConfiguration - Update all launcher plugins (Docker, K8s, YARN, Flink) accordingly - Move ZeppelinConfiguration.java and ZeppelinLocationStrategy.java from zeppelin-interpreter to zeppelin-zengine - Update callers in zeppelin-zengine, zeppelin-server, flink, and markdown interpreters Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent c3ccd9b commit a3f6c67

File tree

50 files changed

+320
-296
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+320
-296
lines changed

flink/flink-scala-2.12/src/main/java/org/apache/zeppelin/flink/FlinkInterpreter.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
import org.apache.flink.configuration.Configuration;
2323
import org.apache.flink.streaming.api.scala.StreamExecutionEnvironment;
2424
import org.apache.flink.table.api.TableEnvironment;
25-
import org.apache.zeppelin.conf.ZeppelinConfiguration;
2625
import org.apache.zeppelin.interpreter.*;
2726
import org.apache.zeppelin.interpreter.thrift.InterpreterCompletion;
2827
import org.slf4j.Logger;
@@ -91,8 +90,8 @@ private FlinkScalaInterpreter loadFlinkScalaInterpreter() throws Exception {
9190
Class<?> clazz = Class.forName(innerIntpClassName);
9291

9392
return (FlinkScalaInterpreter)
94-
clazz.getConstructor(Properties.class, ClassLoader.class, ZeppelinConfiguration.class)
95-
.newInstance(getProperties(), flinkScalaClassLoader, zConf);
93+
clazz.getConstructor(Properties.class, ClassLoader.class)
94+
.newInstance(getProperties(), flinkScalaClassLoader);
9695
}
9796

9897
@Override

flink/flink-scala-2.12/src/main/scala/org/apache/zeppelin/flink/FlinkScala212Interpreter.scala

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,13 @@ import java.util.Properties
2424

2525
import org.apache.zeppelin.interpreter.InterpreterContext
2626
import org.apache.zeppelin.interpreter.thrift.InterpreterCompletion
27-
import org.apache.zeppelin.conf.ZeppelinConfiguration
2827

2928
import scala.tools.nsc.Settings
3029
import scala.tools.nsc.interpreter.{IMain, JPrintWriter}
3130

3231
class FlinkScala212Interpreter(override val properties: Properties,
33-
override val flinkScalaClassLoader: ClassLoader,
34-
override val zConf: ZeppelinConfiguration)
35-
extends FlinkScalaInterpreter(properties, flinkScalaClassLoader, zConf) {
32+
override val flinkScalaClassLoader: ClassLoader)
33+
extends FlinkScalaInterpreter(properties, flinkScalaClassLoader) {
3634

3735
override def completion(buf: String,
3836
cursor: Int,

flink/flink-scala-2.12/src/main/scala/org/apache/zeppelin/flink/FlinkScalaInterpreter.scala

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ import org.apache.flink.table.catalog.hive.HiveCatalog
4444
import org.apache.flink.table.functions.{AggregateFunction, ScalarFunction, TableAggregateFunction, TableFunction}
4545
import org.apache.flink.table.module.hive.HiveModule
4646
import org.apache.flink.yarn.cli.FlinkYarnSessionCli
47-
import org.apache.zeppelin.conf.ZeppelinConfiguration
4847
import org.apache.zeppelin.dep.DependencyResolver
4948
import org.apache.zeppelin.flink.internal.FlinkShell
5049
import org.apache.zeppelin.flink.internal.FlinkShell._
@@ -66,8 +65,7 @@ import scala.tools.nsc.interpreter.{Completion, IMain, IR, JPrintWriter, Results
6665
* @param properties
6766
*/
6867
abstract class FlinkScalaInterpreter(val properties: Properties,
69-
val flinkScalaClassLoader: ClassLoader,
70-
val zConf: ZeppelinConfiguration) {
68+
val flinkScalaClassLoader: ClassLoader) {
7169

7270
private lazy val LOGGER: Logger = LoggerFactory.getLogger(getClass)
7371

@@ -800,7 +798,12 @@ abstract class FlinkScalaInterpreter(val properties: Properties,
800798
val flinkPackageJars =
801799
if (!StringUtils.isBlank(properties.getProperty("flink.execution.packages", ""))) {
802800
val packages = properties.getProperty("flink.execution.packages")
803-
val dependencyResolver = new DependencyResolver(System.getProperty("user.home") + "/.m2/repository", zConf)
801+
val dependencyResolver = new DependencyResolver(
802+
System.getProperty("user.home") + "/.m2/repository",
803+
properties.getProperty("zeppelin.proxy.url"),
804+
properties.getProperty("zeppelin.proxy.user"),
805+
properties.getProperty("zeppelin.proxy.password"),
806+
properties.getProperty("zeppelin.interpreter.dep.mvnRepo"))
804807
packages.split(",")
805808
.flatMap(e => JavaConversions.asScalaBuffer(dependencyResolver.load(e)))
806809
.map(e => e.getAbsolutePath).toSeq

markdown/src/main/java/org/apache/zeppelin/markdown/FlexmarkParser.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
import com.vladsch.flexmark.html.HtmlRenderer;
2929
import com.vladsch.flexmark.parser.Parser;
3030
import com.vladsch.flexmark.util.data.MutableDataSet;
31-
import org.apache.zeppelin.conf.ZeppelinConfiguration;
3231
import org.slf4j.Logger;
3332
import org.slf4j.LoggerFactory;
3433

@@ -44,7 +43,7 @@ public class FlexmarkParser implements MarkdownParser {
4443
private Parser parser;
4544
private HtmlRenderer renderer;
4645

47-
public FlexmarkParser(ZeppelinConfiguration zConf) {
46+
public FlexmarkParser(boolean escapeHtml) {
4847
MutableDataSet options = new MutableDataSet();
4948
options.set(Parser.EXTENSIONS, Arrays.asList(StrikethroughExtension.create(),
5049
TablesExtension.create(),
@@ -55,7 +54,7 @@ public FlexmarkParser(ZeppelinConfiguration zConf) {
5554
EmojiExtension.create()));
5655
options.set(HtmlRenderer.SOFT_BREAK, "<br />\n");
5756
options.set(EmojiExtension.USE_IMAGE_TYPE, UNICODE_ONLY);
58-
options.set(HtmlRenderer.ESCAPE_HTML, zConf.isZeppelinNotebookMarkdownEscapeHtml());
57+
options.set(HtmlRenderer.ESCAPE_HTML, escapeHtml);
5958
parser = Parser.builder(options).build();
6059
renderer = HtmlRenderer.builder(options).build();
6160
}

markdown/src/main/java/org/apache/zeppelin/markdown/Markdown.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,9 @@ public MarkdownParser createMarkdownParser(String parserType) {
7474
LOGGER.debug("Creating {} markdown interpreter", parserType);
7575

7676
if (MarkdownParserType.FLEXMARK.toString().equals(parserType)) {
77-
return new FlexmarkParser(zConf);
77+
boolean escapeHtml = Boolean.parseBoolean(
78+
getProperty("zeppelin.notebook.markdown.escape.html", "true"));
79+
return new FlexmarkParser(escapeHtml);
7880
} else {
7981
// default parser
8082
return new Markdown4jParser();

markdown/src/test/java/org/apache/zeppelin/markdown/FlexmarkParserTest.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717

1818
package org.apache.zeppelin.markdown;
1919

20-
import org.apache.zeppelin.conf.ZeppelinConfiguration;
2120
import org.apache.zeppelin.interpreter.InterpreterResult;
2221
import org.junit.jupiter.api.AfterEach;
2322
import org.junit.jupiter.api.BeforeEach;
@@ -44,7 +43,6 @@ public void setUp() throws Exception {
4443
Properties props = new Properties();
4544
props.put(Markdown.MARKDOWN_PARSER_TYPE, Markdown.PARSER_TYPE_FLEXMARK);
4645
md = new Markdown(props);
47-
md.setZeppelinConfiguration(ZeppelinConfiguration.load());
4846
md.open();
4947
}
5048

zeppelin-interpreter/src/main/java/org/apache/zeppelin/dep/AbstractDependencyResolver.java

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
import java.util.LinkedList;
2525
import java.util.List;
2626

27-
import org.apache.zeppelin.conf.ZeppelinConfiguration;
2827
import org.eclipse.aether.RepositorySystem;
2928
import org.eclipse.aether.RepositorySystemSession;
3029
import org.eclipse.aether.repository.Authentication;
@@ -49,26 +48,28 @@ public abstract class AbstractDependencyResolver {
4948
protected RepositorySystemSession session;
5049
private Proxy proxy = null;
5150

52-
protected AbstractDependencyResolver(String localRepoPath, ZeppelinConfiguration zConf) {
53-
if (zConf.getZeppelinProxyUrl() != null) {
51+
protected AbstractDependencyResolver(String localRepoPath,
52+
String proxyUrl, String proxyUser, String proxyPassword, String mvnRepoUrl) {
53+
if (proxyUrl != null) {
5454
try {
55-
URL proxyUrl = new URL(zConf.getZeppelinProxyUrl());
56-
Authentication auth = new AuthenticationBuilder().addUsername(zConf.getZeppelinProxyUser()).addPassword(zConf.getZeppelinProxyPassword()).build();
57-
proxy = new Proxy(proxyUrl.getProtocol(), proxyUrl.getHost(), proxyUrl.getPort(), auth);
55+
URL parsedProxyUrl = new URL(proxyUrl);
56+
Authentication auth = new AuthenticationBuilder()
57+
.addUsername(proxyUser).addPassword(proxyPassword).build();
58+
proxy = new Proxy(parsedProxyUrl.getProtocol(), parsedProxyUrl.getHost(),
59+
parsedProxyUrl.getPort(), auth);
5860
} catch (MalformedURLException e) {
59-
LOGGER.error("Proxy Url {} is not valid - skipping Proxy config", zConf.getZeppelinProxyUrl(), e);
61+
LOGGER.error("Proxy Url {} is not valid - skipping Proxy config", proxyUrl, e);
6062
}
6163
}
6264
session = Booter.newRepositorySystemSession(system, localRepoPath);
63-
repos.addAll(Booter.newCentralRepositorys(proxy, zConf)); // add maven central
65+
repos.addAll(Booter.newCentralRepositorys(proxy, mvnRepoUrl)); // add maven central
6466
repos.add(Booter.newLocalRepository());
6567
}
6668

67-
protected AbstractDependencyResolver(String localRepoPath, Proxy proxy,
68-
ZeppelinConfiguration zConf) {
69+
protected AbstractDependencyResolver(String localRepoPath, Proxy proxy, String mvnRepoUrl) {
6970
this.proxy = proxy;
7071
session = Booter.newRepositorySystemSession(system, localRepoPath);
71-
repos.addAll(Booter.newCentralRepositorys(proxy, zConf)); // add maven central
72+
repos.addAll(Booter.newCentralRepositorys(proxy, mvnRepoUrl)); // add maven central
7273
repos.add(Booter.newLocalRepository());
7374
}
7475

zeppelin-interpreter/src/main/java/org/apache/zeppelin/dep/Booter.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
package org.apache.zeppelin.dep;
1919

2020
import org.apache.commons.lang3.Validate;
21-
import org.apache.zeppelin.conf.ZeppelinConfiguration;
2221
import org.apache.maven.repository.internal.MavenRepositorySystemUtils;
2322
import org.eclipse.aether.DefaultRepositorySystemSession;
2423
import org.eclipse.aether.RepositorySystem;
@@ -83,10 +82,10 @@ static String resolveLocalRepoPath(String localRepoPath) {
8382
}
8483

8584
public static List<RemoteRepository> newCentralRepositorys(Proxy proxy,
86-
ZeppelinConfiguration zConf) {
85+
String mvnRepoUrl) {
8786
String mvnRepoEnv = System.getenv("ZEPPELIN_INTERPRETER_DEP_MVNREPO");
8887
if (mvnRepoEnv == null) {
89-
mvnRepoEnv = zConf.getString(ZeppelinConfiguration.ConfVars.ZEPPELIN_INTERPRETER_DEP_MVNREPO);
88+
mvnRepoEnv = mvnRepoUrl;
9089
}
9190
if (mvnRepoEnv == null) {
9291
mvnRepoEnv = "https://repo1.maven.org/maven2/";

zeppelin-interpreter/src/main/java/org/apache/zeppelin/dep/DependencyResolver.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727

2828
import org.apache.commons.io.FileUtils;
2929
import org.apache.commons.lang3.StringUtils;
30-
import org.apache.zeppelin.conf.ZeppelinConfiguration;
3130
import org.eclipse.aether.RepositoryException;
3231
import org.eclipse.aether.artifact.Artifact;
3332
import org.eclipse.aether.artifact.DefaultArtifact;
@@ -56,12 +55,13 @@ public class DependencyResolver extends AbstractDependencyResolver {
5655
"org.apache.zeppelin:zeppelin-interpreter",
5756
"org.apache.zeppelin:zeppelin-server"};
5857

59-
public DependencyResolver(String localRepoPath, ZeppelinConfiguration zConf) {
60-
super(localRepoPath, zConf);
58+
public DependencyResolver(String localRepoPath,
59+
String proxyUrl, String proxyUser, String proxyPassword, String mvnRepoUrl) {
60+
super(localRepoPath, proxyUrl, proxyUser, proxyPassword, mvnRepoUrl);
6161
}
6262

63-
public DependencyResolver(String localRepoPath, Proxy proxy, ZeppelinConfiguration zConf) {
64-
super(localRepoPath, proxy, zConf);
63+
public DependencyResolver(String localRepoPath, Proxy proxy, String mvnRepoUrl) {
64+
super(localRepoPath, proxy, mvnRepoUrl);
6565
}
6666

6767
public List<File> load(String artifact)

zeppelin-interpreter/src/main/java/org/apache/zeppelin/interpreter/Interpreter.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
import org.apache.commons.lang3.reflect.FieldUtils;
2323
import org.apache.zeppelin.annotation.Experimental;
2424
import org.apache.zeppelin.annotation.ZeppelinApi;
25-
import org.apache.zeppelin.conf.ZeppelinConfiguration;
2625
import org.apache.zeppelin.interpreter.thrift.InterpreterCompletion;
2726
import org.apache.zeppelin.scheduler.Scheduler;
2827
import org.apache.zeppelin.scheduler.SchedulerFactory;
@@ -150,7 +149,6 @@ public Scheduler getScheduler() {
150149
private URL[] classloaderUrls;
151150
protected Properties properties;
152151
protected String userName;
153-
protected ZeppelinConfiguration zConf;
154152

155153
@ZeppelinApi
156154
public Interpreter(Properties properties) {
@@ -200,10 +198,6 @@ public String getUserName() {
200198
return this.userName;
201199
}
202200

203-
public void setZeppelinConfiguration(ZeppelinConfiguration zConf) {
204-
this.zConf = zConf;
205-
}
206-
207201
public void setInterpreterGroup(InterpreterGroup interpreterGroup) {
208202
this.interpreterGroup = interpreterGroup;
209203
}

0 commit comments

Comments
 (0)