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/04/24 14:38:05 UTC

[zeppelin] branch branch-0.9 updated: [ZEPPELIN-4775]. Sometimes sql text is not highlighted

This is an automated email from the ASF dual-hosted git repository.

zjffdu pushed a commit to branch branch-0.9
in repository https://gitbox.apache.org/repos/asf/zeppelin.git


The following commit(s) were added to refs/heads/branch-0.9 by this push:
     new 1fece26  [ZEPPELIN-4775]. Sometimes sql text is not highlighted
1fece26 is described below

commit 1fece262b35efe30f46128bfcb9f2ea170c8a095
Author: Jeff Zhang <zj...@apache.org>
AuthorDate: Fri Apr 24 10:45:03 2020 +0800

    [ZEPPELIN-4775]. Sometimes sql text is not highlighted
    
    ### What is this PR for?
    
    This PR is to fix the highlight issue. The root cause is in the magic parsing logic in frontend. This PR just move the magic logic from frontend to backend. So that we use the consistent parsing logic.
    
    ### What type of PR is it?
    [Bug Fix]
    
    ### Todos
    * [ ] - Task
    
    ### What is the Jira issue?
    * https://issues.apache.org/jira/browse/ZEPPELIN-4775
    
    ### How should this be tested?
    * CI pass
    
    ### Screenshots (if appropriate)
    
    Before
    ![image](https://user-images.githubusercontent.com/164491/80192467-cbe8fd00-8649-11ea-8a6a-fcb3aa02d9c5.png)
    
    After
    
    ![image](https://user-images.githubusercontent.com/164491/80192447-c390c200-8649-11ea-9c85-0fdd80edd5c4.png)
    
    ### 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 #3748 from zjffdu/ZEPPELIN-4775 and squashes the following commits:
    
    a030427e9 [Jeff Zhang] [ZEPPELIN-4775]. Sometimes sql text is not highlighted
    
    (cherry picked from commit 28a0a6dea97d3630e4acf310df051523fca6140b)
    Signed-off-by: Jeff Zhang <zj...@apache.org>
---
 .../main/java/org/apache/zeppelin/service/NotebookService.java    | 4 ++--
 .../src/main/java/org/apache/zeppelin/socket/NotebookServer.java  | 4 ++--
 zeppelin-web/src/app/notebook/paragraph/paragraph.controller.js   | 6 +++---
 .../src/components/websocket/websocket-message.service.js         | 4 ++--
 .../java/org/apache/zeppelin/interpreter/InterpreterSetting.java  | 3 +++
 .../apache/zeppelin/interpreter/InterpreterSettingManager.java    | 8 ++++----
 .../main/java/org/apache/zeppelin/notebook/socket/Message.java    | 2 +-
 7 files changed, 17 insertions(+), 14 deletions(-)

diff --git a/zeppelin-server/src/main/java/org/apache/zeppelin/service/NotebookService.java b/zeppelin-server/src/main/java/org/apache/zeppelin/service/NotebookService.java
index a844507..9901586 100644
--- a/zeppelin-server/src/main/java/org/apache/zeppelin/service/NotebookService.java
+++ b/zeppelin-server/src/main/java/org/apache/zeppelin/service/NotebookService.java
@@ -885,7 +885,7 @@ public class NotebookService {
   }
 
   public void getEditorSetting(String noteId,
-                               String magic,
+                               String paragraphText,
                                ServiceContext context,
                                ServiceCallback<Map<String, Object>> callback) throws IOException {
     Note note = notebook.getNote(noteId);
@@ -895,7 +895,7 @@ public class NotebookService {
     }
     try {
       Map<String, Object> settings = notebook.getInterpreterSettingManager().
-          getEditorSetting(magic, noteId);
+          getEditorSetting(paragraphText, noteId);
       callback.onSuccess(settings, context);
     } catch (Exception e) {
       callback.onFailure(new IOException("Fail to getEditorSetting", e), context);
diff --git a/zeppelin-server/src/main/java/org/apache/zeppelin/socket/NotebookServer.java b/zeppelin-server/src/main/java/org/apache/zeppelin/socket/NotebookServer.java
index 0bef18a..ad06e02 100644
--- a/zeppelin-server/src/main/java/org/apache/zeppelin/socket/NotebookServer.java
+++ b/zeppelin-server/src/main/java/org/apache/zeppelin/socket/NotebookServer.java
@@ -2020,10 +2020,10 @@ public class NotebookServer extends WebSocketServlet
 
   private void getEditorSetting(NotebookSocket conn, Message fromMessage) throws IOException {
     String paragraphId = (String) fromMessage.get("paragraphId");
-    String magic = (String) fromMessage.get("magic");
+    String paragraphText = (String) fromMessage.get("paragraphText");
     String noteId = getConnectionManager().getAssociatedNoteId(conn);
 
-    getNotebookService().getEditorSetting(noteId, magic,
+    getNotebookService().getEditorSetting(noteId, paragraphText,
         getServiceContext(fromMessage),
         new WebSocketServiceCallback<Map<String, Object>>(conn) {
           @Override
diff --git a/zeppelin-web/src/app/notebook/paragraph/paragraph.controller.js b/zeppelin-web/src/app/notebook/paragraph/paragraph.controller.js
index a303b0f..6ccff79 100644
--- a/zeppelin-web/src/app/notebook/paragraph/paragraph.controller.js
+++ b/zeppelin-web/src/app/notebook/paragraph/paragraph.controller.js
@@ -1103,10 +1103,10 @@ function ParagraphCtrl($scope, $rootScope, $route, $window, $routeParams, $locat
     }
   };
 
-  let getEditorSetting = function(paragraph, magic) {
+  let getEditorSetting = function(paragraph, pragraphText) {
     let deferred = $q.defer();
     if (!$scope.revisionView) {
-      websocketMsgSrv.getEditorSetting(paragraph.id, magic);
+      websocketMsgSrv.getEditorSetting(paragraph.id, pragraphText);
       $timeout(
         $scope.$on('editorSetting', function(event, data) {
           if (paragraph.id === data.paragraphId) {
@@ -1139,7 +1139,7 @@ function ParagraphCtrl($scope, $rootScope, $route, $window, $routeParams, $locat
         let magic = getParagraphMagic(paragraphText);
         if (editorSetting.magic !== magic) {
           editorSetting.magic = magic;
-          getEditorSetting($scope.paragraph, magic)
+          getEditorSetting($scope.paragraph, paragraphText)
             .then(function(setting) {
               setEditorLanguage(session, setting.editor.language);
               _.merge($scope.paragraph.config.editorSetting, setting.editor);
diff --git a/zeppelin-web/src/components/websocket/websocket-message.service.js b/zeppelin-web/src/components/websocket/websocket-message.service.js
index 06d7726..a959070 100644
--- a/zeppelin-web/src/components/websocket/websocket-message.service.js
+++ b/zeppelin-web/src/components/websocket/websocket-message.service.js
@@ -330,12 +330,12 @@ function WebsocketMessageService($rootScope, websocketEvents) {
       });
     },
 
-    getEditorSetting: function(paragraphId, magic) {
+    getEditorSetting: function(paragraphId, pararaphText) {
       websocketEvents.sendNewEvent({
         op: 'EDITOR_SETTING',
         data: {
           paragraphId: paragraphId,
-          magic: magic,
+          paragraphText: pararaphText,
         },
       });
     },
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 9a179cd..ff5b9e0 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
@@ -1093,6 +1093,9 @@ public class InterpreterSetting {
         return interpreterInfo;
       }
     }
+    if (interpreterInfos.size() == 1) {
+      return interpreterInfos.get(0);
+    }
     throw new Exception("No default interpreter info found in interpreter setting: " + name);
   }
 
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 899c850..2a64c9d 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
@@ -499,14 +499,14 @@ public class InterpreterSettingManager implements NoteEventListener, ClusterEven
   }
 
   /**
-   * Get editor setting for one paragraph based on its magic part and noteId
+   * Get editor setting for one paragraph based on its paragraph text and noteId
    *
-   * @param magic
+   * @param paragraphText
    * @param noteId
    * @return
    */
-  public Map<String, Object> getEditorSetting(String magic, String noteId) {
-    ParagraphTextParser.ParseResult parseResult = ParagraphTextParser.parse(magic);
+  public Map<String, Object> getEditorSetting(String paragraphText, String noteId) {
+    ParagraphTextParser.ParseResult parseResult = ParagraphTextParser.parse(paragraphText);
     if (StringUtils.isBlank(parseResult.getIntpText())) {
       // Use default interpreter setting if no interpreter is specified.
       InterpreterSetting interpreterSetting = getDefaultInterpreterSetting(noteId);
diff --git a/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/socket/Message.java b/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/socket/Message.java
index d30306b..2b9f339 100644
--- a/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/socket/Message.java
+++ b/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/socket/Message.java
@@ -108,7 +108,7 @@ public class Message implements JsonSerializable {
                       // @param params paragraph params
 
     EDITOR_SETTING,   // [c-s] ask paragraph editor setting
-                      // @param magic magic keyword written in paragraph
+                      // @param paragraph text keyword written in paragraph
                       // ex) spark.spark or spark
 
     COMPLETION,       // [c-s] ask completion candidates