You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zeppelin.apache.org by zj...@apache.org on 2020/03/07 04:19:56 UTC
[zeppelin] branch master updated: ZEPPELIN-4467. Reserve the order
of interpreter properties defined in interpreter-setting.json
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 5d012ec ZEPPELIN-4467. Reserve the order of interpreter properties defined in interpreter-setting.json
5d012ec is described below
commit 5d012ec2eba21e0dcd4ef2dba6979e7419aefa09
Author: Jeff Zhang <zj...@apache.org>
AuthorDate: Wed Dec 4 15:58:36 2019 +0800
ZEPPELIN-4467. Reserve the order of interpreter properties defined in interpreter-setting.json
### What is this PR for?
This is only the backend work for revering the order of interpreter properties defined in `interpreter-setting.json`. We also need to do changes in frontend as well.
### What type of PR is it?
[ Improvement]
### Todos
* [ ] - Task
### What is the Jira issue?
* https://issues.apache.org/jira/browse/ZEPPELIN-4467
### How should this be tested?
* Ci pass
### 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 <zj...@apache.org>
Closes #3535 from zjffdu/ZEPPELIN-4467 and squashes the following commits:
174bc5dac [Jeff Zhang] ZEPPELIN-4467. Reserve the order of interpreter properties defined in interpreter-setting.json
---
.../src/main/resources/interpreter-setting.json | 6 ++--
zeppelin-web/src/app/interpreter/interpreter.html | 40 +++++++++++-----------
.../zeppelin/interpreter/InterpreterSetting.java | 5 +--
.../interpreter/InterpreterSettingManager.java | 3 +-
4 files changed, 28 insertions(+), 26 deletions(-)
diff --git a/spark/interpreter/src/main/resources/interpreter-setting.json b/spark/interpreter/src/main/resources/interpreter-setting.json
index d8549b3..33d8e8e 100644
--- a/spark/interpreter/src/main/resources/interpreter-setting.json
+++ b/spark/interpreter/src/main/resources/interpreter-setting.json
@@ -31,7 +31,7 @@
"propertyName": "spark.driver.cores",
"defaultValue": "1",
"description": "Number of cores to use for the driver process, only in cluster mode.",
- "type": "int"
+ "type": "number"
},
"spark.driver.memory": {
"envName": "",
@@ -45,7 +45,7 @@
"propertyName": "spark.executor.cores",
"defaultValue": "1",
"description": "The number of cores to use on each executor",
- "type": "int"
+ "type": "number"
},
"spark.executor.memory": {
"envName": null,
@@ -156,7 +156,7 @@
"zeppelin.spark.concurrentSQL.max": {
"envName": null,
"propertyName": "zeppelin.spark.concurrentSQL.max",
- "defaultValue": 10,
+ "defaultValue": "10",
"description": "Max number of SQL concurrently executed",
"type": "number"
},
diff --git a/zeppelin-web/src/app/interpreter/interpreter.html b/zeppelin-web/src/app/interpreter/interpreter.html
index 1dc1357..30f6f99 100644
--- a/zeppelin-web/src/app/interpreter/interpreter.html
+++ b/zeppelin-web/src/app/interpreter/interpreter.html
@@ -398,32 +398,32 @@ limitations under the License.
<th style="width:20%" ng-if="valueform.$visible">action</th>
</tr>
</thead>
- <tr ng-repeat="key in setting.properties | sortByKey" >
- <td style="vertical-align: middle;">{{key}}</td>
+ <tr ng-repeat="property in setting.properties" >
+ <td style="vertical-align: middle;">{{property.name}}</td>
<td style="vertical-align: middle;">
- <span ng-if="setting.properties[key].type === 'textarea'"
- editable-textarea="setting.properties[key].value" e-form="valueform" e-msd-elastic>
- {{setting.properties[key].value | breakFilter}}
+ <span ng-if="property.type === 'textarea'"
+ editable-textarea="property.value" e-form="valueform" e-msd-elastic>
+ {{property.value | breakFilter}}
</span>
- <span ng-if="setting.properties[key].type === 'string'"
- editable-text="setting.properties[key].value" e-form="valueform" e-msd-elastic>
- {{setting.properties[key].value}}
+ <span ng-if="property.type === 'string'"
+ editable-text="property.value" e-form="valueform" e-msd-elastic>
+ {{property.value}}
</span>
- <span ng-if="setting.properties[key].type === 'number'"
- editable-text="setting.properties[key].value" e-widget-number e-form="valueform" e-msd-elastic>
- {{setting.properties[key].value}}
+ <span ng-if="property.type === 'number'"
+ editable-text="property.value" e-widget-number e-form="valueform" e-msd-elastic>
+ {{property.value}}
</span>
- <span ng-if="setting.properties[key].type === 'url'"
- editable-text="setting.properties[key].value" e-form="valueform" e-msd-elastic>
- <a ng-href="{{setting.properties[key].value}}">{{setting.properties[key].value}}</a>
+ <span ng-if="property.type === 'url'"
+ editable-text="property.value" e-form="valueform" e-msd-elastic>
+ <a ng-href="{{property.value}}">{{property.value}}</a>
</span>
- <span ng-if="setting.properties[key].type === 'password'"
- editable-password="setting.properties[key].value" e-form="valueform" e-msd-elastic>
- {{setting.properties[key].value ? '***' : ''}}
+ <span ng-if="property.type === 'password'"
+ editable-password="property.value" e-form="valueform" e-msd-elastic>
+ {{property.value ? '***' : ''}}
</span>
- <span ng-if="setting.properties[key].type === 'checkbox'"
- editable-checkbox="setting.properties[key].value" e-form="valueform" e-msd-elastic>
- {{setting.properties[key].value}}
+ <span ng-if="property.type === 'checkbox'"
+ editable-checkbox="property.value" e-form="valueform" e-msd-elastic>
+ {{property.value}}
</span>
</td>
<td style="vertical-align: middle;" ng-if="valueform.$visible">
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 632937d..9d898a3 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
@@ -60,6 +60,7 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
+import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
@@ -939,7 +940,7 @@ public class InterpreterSetting {
// For backward compatibility of interpreter.json format after ZEPPELIN-2403
static Map<String, InterpreterProperty> convertInterpreterProperties(Object properties) {
if (properties != null && properties instanceof StringMap) {
- Map<String, InterpreterProperty> newProperties = new HashMap<>();
+ Map<String, InterpreterProperty> newProperties = new LinkedHashMap<>();
StringMap p = (StringMap) properties;
for (Object o : p.entrySet()) {
Map.Entry entry = (Map.Entry) o;
@@ -963,7 +964,7 @@ public class InterpreterSetting {
} else if (properties instanceof Map) {
Map<String, Object> dProperties =
(Map<String, Object>) properties;
- Map<String, InterpreterProperty> newProperties = new HashMap<>();
+ Map<String, InterpreterProperty> newProperties = new LinkedHashMap<>();
for (String key : dProperties.keySet()) {
Object value = dProperties.get(key);
if (value instanceof InterpreterProperty) {
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 1202315..69051cd 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
@@ -27,6 +27,7 @@ import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
import java.util.Properties;
+import java.util.LinkedHashMap;
import java.util.Set;
import javax.inject.Inject;
import org.apache.commons.io.FileUtils;
@@ -419,7 +420,7 @@ public class InterpreterSettingManager implements NoteEventListener, ClusterEven
private void registerInterpreterSetting(List<RegisteredInterpreter> registeredInterpreters,
String interpreterDir, boolean override) {
- Map<String, DefaultInterpreterProperty> properties = new HashMap<>();
+ Map<String, DefaultInterpreterProperty> properties = new LinkedHashMap<>();
List<InterpreterInfo> interpreterInfos = new ArrayList<>();
InterpreterOption option = defaultOption;
String group = null;