This is an automated email from the ASF dual-hosted git repository.
pdallig pushed a commit to branch branch-0.10
in repository https://gitbox.apache.org/repos/asf/zeppelin.git
The following commit(s) were added to refs/heads/branch-0.10 by this push:
new a31240878a [ZEPPELIN-5819] Configures ivy to download jar libraries
only from remote
a31240878a is described below
commit a31240878a5365eb127f851be3d197949c0ea2f4
Author: Philipp Dallig <[email protected]>
AuthorDate: Mon Oct 24 08:23:57 2022 +0200
[ZEPPELIN-5819] Configures ivy to download jar libraries only from remote
### What is this PR for?
Configures ivy to download jar libraries only from remote and ignore local
jars
### What type of PR is it?
* Hot Fix
### What is the Jira issue?
* https://issues.apache.org/jira/browse/ZEPPELIN-5819
### How should this be tested?
* CI
### Questions:
* Does the licenses files need to update? No
* Is there breaking changes for older versions? No
* Does this needs documentation? No
Author: Philipp Dallig <[email protected]>
Closes #4495 from Reamer/ivy_download and squashes the following commits:
b74631ab3 [Philipp Dallig] Configures ivy to download jar libraries only
from remote
(cherry picked from commit e70b57c9badfa38263cc85ac62293e2ce0e2d49f)
Signed-off-by: Philipp Dallig <[email protected]>
# Conflicts:
#
zeppelin-interpreter-integration/src/test/java/org/apache/zeppelin/integration/SparkIntegrationTest.java
---
.../zeppelin/integration/SparkIntegrationTest.java | 19 ++++++++++++++++++-
.../src/test/resources/ivysettings.xml | 6 ++++++
2 files changed, 24 insertions(+), 1 deletion(-)
diff --git
a/zeppelin-interpreter-integration/src/test/java/org/apache/zeppelin/integration/SparkIntegrationTest.java
b/zeppelin-interpreter-integration/src/test/java/org/apache/zeppelin/integration/SparkIntegrationTest.java
index 1dec6eed1f..dde6cc045b 100644
---
a/zeppelin-interpreter-integration/src/test/java/org/apache/zeppelin/integration/SparkIntegrationTest.java
+++
b/zeppelin-interpreter-integration/src/test/java/org/apache/zeppelin/integration/SparkIntegrationTest.java
@@ -17,6 +17,7 @@
package org.apache.zeppelin.integration;
+import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.apache.hadoop.yarn.api.protocolrecords.GetApplicationsRequest;
import org.apache.hadoop.yarn.api.protocolrecords.GetApplicationsResponse;
@@ -45,6 +46,7 @@ import org.slf4j.LoggerFactory;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
+import java.nio.charset.StandardCharsets;
import java.util.EnumSet;
import static org.junit.Assert.assertEquals;
@@ -95,6 +97,18 @@ public abstract class SparkIntegrationTest {
// sub class can customize spark interpreter setting.
}
+ /**
+ * Configures ivy to download jar libraries only from remote.
+ *
+ * @param interpreterSetting
+ * @throws IOException
+ */
+ private void setupIvySettings(InterpreterSetting interpreterSetting) throws
IOException {
+ File ivysettings = new File(zeppelin.getZeppelinConfDir(),
"ivysettings.xml");
+
FileUtils.copyToFile(SparkIntegrationTest.class.getResourceAsStream("/ivysettings.xml"),
ivysettings);
+ interpreterSetting.setProperty("spark.jars.ivySettings",
ivysettings.getAbsolutePath());
+ }
+
private void testInterpreterBasics() throws IOException,
InterpreterException, XmlPullParserException {
// add jars & packages for testing
InterpreterSetting sparkInterpreterSetting =
interpreterSettingManager.getInterpreterSettingByName("spark");
@@ -170,6 +184,7 @@ public abstract class SparkIntegrationTest {
try {
setUpSparkInterpreterSetting(sparkInterpreterSetting);
+ setupIvySettings(sparkInterpreterSetting);
testInterpreterBasics();
// no yarn application launched
@@ -199,6 +214,7 @@ public abstract class SparkIntegrationTest {
try {
setUpSparkInterpreterSetting(sparkInterpreterSetting);
+ setupIvySettings(sparkInterpreterSetting);
testInterpreterBasics();
// 1 yarn application launched
@@ -251,6 +267,7 @@ public abstract class SparkIntegrationTest {
try {
setUpSparkInterpreterSetting(sparkInterpreterSetting);
+ setupIvySettings(sparkInterpreterSetting);
testInterpreterBasics();
// 1 yarn application launched
@@ -333,6 +350,6 @@ public abstract class SparkIntegrationTest {
if (process.waitFor() != 0) {
throw new RuntimeException("Fail to run command: which python.");
}
- return IOUtils.toString(process.getInputStream()).trim();
+ return IOUtils.toString(process.getInputStream(),
StandardCharsets.UTF_8).trim();
}
}
diff --git
a/zeppelin-interpreter-integration/src/test/resources/ivysettings.xml
b/zeppelin-interpreter-integration/src/test/resources/ivysettings.xml
new file mode 100644
index 0000000000..3b872e1aa1
--- /dev/null
+++ b/zeppelin-interpreter-integration/src/test/resources/ivysettings.xml
@@ -0,0 +1,6 @@
+<ivysettings>
+ <settings defaultResolver="central"/>
+ <resolvers>
+ <ibiblio name="central" m2compatible="true"
root="https://repo1.maven.org/maven2/"/>
+ </resolvers>
+</ivysettings>