This is an automated email from the ASF dual-hosted git repository.
zjffdu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/zeppelin.git
The following commit(s) were added to refs/heads/master by this push:
new 7fa7e91 [ZEPPELIN-4416]. Don't merge properties from
inteprreter-setting.json if it already exists
7fa7e91 is described below
commit 7fa7e91c9ba15f4f318bed6069d1b53ec8c4686a
Author: Jeff Zhang <[email protected]>
AuthorDate: Mon Nov 4 12:38:26 2019 +0800
[ZEPPELIN-4416]. Don't merge properties from inteprreter-setting.json if it
already exists
### What is this PR for?
Currently zeppelin will merge the setting in `interpreter-setting.json`
with setting in `interpreter.json`, usually this is not what user expect. E.g.
if user delete one property defined in `interpreter-setting.json` and then
restart zeppelin, he would see this property again as we merged it from
`interpreter-setting.json`. So this PR is to remove the logic of merging
properties from interpreter-setting.json if it already exists.
### What type of PR is it?
[Improvement]
### Todos
* [ ] - Task
### What is the Jira issue?
* https://jira.apache.org/jira/browse/ZEPPELIN-4416
### How should this be tested?
* Manually tested
### Screenshots (if appropriate)
### Questions:
* Does the licenses files need update? No
* Is there breaking changes for older versions? No
* Does this needs documentation? No
Author: Jeff Zhang <[email protected]>
Closes #3510 from zjffdu/ZEPPELIN-4416 and squashes the following commits:
ab2272a4b [Jeff Zhang] [ZEPPELIN-4416]. Don't merge properties from
inteprreter-setting.json if it already exists
---
.../zeppelin/interpreter/InterpreterSetting.java | 8 ++++++--
.../interpreter/InterpreterSettingManager.java | 21 ++++-----------------
2 files changed, 10 insertions(+), 19 deletions(-)
diff --git
a/zeppelin-zengine/src/main/java/org/apache/zeppelin/interpreter/InterpreterSetting.java
b/zeppelin-zengine/src/main/java/org/apache/zeppelin/interpreter/InterpreterSetting.java
index a51bb87..7a6ce3a 100644
---
a/zeppelin-zengine/src/main/java/org/apache/zeppelin/interpreter/InterpreterSetting.java
+++
b/zeppelin-zengine/src/main/java/org/apache/zeppelin/interpreter/InterpreterSetting.java
@@ -933,8 +933,12 @@ public class InterpreterSetting {
InterpreterPropertyType.STRING.getValue());
newProperties.put(entry.getKey().toString(), newProperty);
} else {
- // already converted
- return (Map<String, InterpreterProperty>) properties;
+ StringMap stringMap = (StringMap) entry.getValue();
+ InterpreterProperty newProperty = new InterpreterProperty(
+ entry.getKey().toString(),
+ stringMap.get("value"),
+ stringMap.containsKey("type") ?
stringMap.get("type").toString() : "string");
+ newProperties.put(newProperty.getName(), newProperty);
}
}
return newProperties;
diff --git
a/zeppelin-zengine/src/main/java/org/apache/zeppelin/interpreter/InterpreterSettingManager.java
b/zeppelin-zengine/src/main/java/org/apache/zeppelin/interpreter/InterpreterSettingManager.java
index c051d8b..be0538c 100644
---
a/zeppelin-zengine/src/main/java/org/apache/zeppelin/interpreter/InterpreterSettingManager.java
+++
b/zeppelin-zengine/src/main/java/org/apache/zeppelin/interpreter/InterpreterSettingManager.java
@@ -245,26 +245,13 @@ public class InterpreterSettingManager implements
NoteEventListener, ClusterEven
InterpreterSetting interpreterSettingTemplate =
interpreterSettingTemplates.get(savedInterpreterSetting.getGroup());
- // InterpreterSettingTemplate is from interpreter-setting.json which
represent the latest
+ // InterpreterSettingTemplate is from interpreter-setting.json which
represent the initialized
// InterpreterSetting, while InterpreterSetting is from interpreter.json
which represent
// the user saved interpreter setting
if (interpreterSettingTemplate != null) {
-
savedInterpreterSetting.setInterpreterDir(interpreterSettingTemplate.getInterpreterDir());
- // merge properties from interpreter-setting.json and interpreter.json
- Map<String, InterpreterProperty> mergedProperties =
- new HashMap<>(InterpreterSetting.convertInterpreterProperties(
- interpreterSettingTemplate.getProperties()));
- Map<String, InterpreterProperty> savedProperties = InterpreterSetting
-
.convertInterpreterProperties(savedInterpreterSetting.getProperties());
- for (Map.Entry<String, InterpreterProperty> entry :
savedProperties.entrySet()) {
- // only merge properties whose value is not empty
- if (entry.getValue().getValue() != null && !
- StringUtils.isBlank(entry.getValue().toString())) {
- mergedProperties.put(entry.getKey(), entry.getValue());
- }
- }
- savedInterpreterSetting.setProperties(mergedProperties);
- // merge InterpreterInfo
+ // merge InterpreterDir, InterpreterInfo & InterpreterRunner
+ savedInterpreterSetting.setInterpreterDir(
+ interpreterSettingTemplate.getInterpreterDir());
savedInterpreterSetting.setInterpreterInfos(
interpreterSettingTemplate.getInterpreterInfos());
savedInterpreterSetting.setInterpreterRunner(