You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zeppelin.apache.org by pd...@apache.org on 2021/01/04 08:21:44 UTC

[zeppelin] branch branch-0.9 updated: [ZEPPELIN-5130] Improve Code

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

pdallig 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 e636c4e  [ZEPPELIN-5130] Improve Code
e636c4e is described below

commit e636c4e66ad04fb11dc94205475ae3020bd28d0d
Author: Philipp Dallig <ph...@gmail.com>
AuthorDate: Fri Dec 11 13:50:48 2020 +0100

    [ZEPPELIN-5130] Improve Code
    
    Improve the code during development.
    
     - Refactoring
    
    * https://issues.apache.org/jira/browse/ZEPPELIN-5130
    
    * Does the licenses files need update? No
    * Is there breaking changes for older versions? No
    * Does this needs documentation? No
    
    Author: Philipp Dallig <ph...@gmail.com>
    
    Closes #4000 from Reamer/cleanup2 and squashes the following commits:
    
    64af5aeff [Philipp Dallig] cleanup
    da66de0c4 [Philipp Dallig] Use commons.lang3
    
    (cherry picked from commit 136140c85800d1d5b4e0a770b33f7ce82b1c2e99)
    Signed-off-by: Philipp Dallig <ph...@gmail.com>
---
 .../java/org/apache/zeppelin/common/Message.java   | 11 ++--
 .../zeppelin/notebook/repo/AzureNotebookRepo.java  |  5 +-
 .../notebook/repo/OldAzureNotebookRepo.java        |  4 +-
 .../notebook/repo/FileSystemNotebookRepo.java      |  9 +--
 .../notebook/repo/OldFileSystemNotebookRepo.java   |  5 +-
 .../zeppelin/notebook/repo/GCSNotebookRepo.java    | 14 ++---
 .../zeppelin/notebook/repo/OldGCSNotebookRepo.java | 17 +++---
 .../zeppelin/notebook/repo/OSSNotebookRepo.java    | 12 ++--
 .../repo/zeppelinhub/OldZeppelinHubRepo.java       | 13 ++---
 .../notebook/repo/zeppelinhub/ZeppelinHubRepo.java | 13 +++--
 .../org/apache/zeppelin/rest/ClusterRestApi.java   | 20 +++----
 .../zeppelin/rest/ConfigurationsRestApi.java       |  8 +--
 .../org/apache/zeppelin/rest/HeliumRestApi.java    | 67 +++++++++++-----------
 .../apache/zeppelin/rest/InterpreterRestApi.java   |  6 +-
 .../org/apache/zeppelin/rest/NotebookRestApi.java  | 12 ++--
 .../org/apache/zeppelin/rest/SecurityRestApi.java  |  9 +--
 .../org/apache/zeppelin/service/AdminService.java  |  2 +-
 .../zeppelin/service/ConfigurationService.java     |  4 --
 .../apache/zeppelin/service/NotebookService.java   | 11 ++--
 19 files changed, 119 insertions(+), 123 deletions(-)

diff --git a/zeppelin-common/src/main/java/org/apache/zeppelin/common/Message.java b/zeppelin-common/src/main/java/org/apache/zeppelin/common/Message.java
index bf738df..5bacc33 100644
--- a/zeppelin-common/src/main/java/org/apache/zeppelin/common/Message.java
+++ b/zeppelin-common/src/main/java/org/apache/zeppelin/common/Message.java
@@ -35,7 +35,7 @@ public class Message implements JsonSerializable {
   /**
    * Representation of event type.
    */
-  public static enum OP {
+  public enum OP {
     GET_HOME_NOTE,    // [c-s] load note for home screen
 
     GET_NOTE,         // [c-s] client load note
@@ -138,7 +138,7 @@ public class Message implements JsonSerializable {
 
     ANGULAR_OBJECT_UPDATE,        // [s-c] add/update angular object
     ANGULAR_OBJECT_REMOVE,        // [s-c] add angular object del
-    
+
     ANGULAR_OBJECT_UPDATED,       // [c-s] angular object value updated,
 
     ANGULAR_OBJECT_CLIENT_BIND,   // [c-s] angular object updated from AngularJS z object
@@ -220,7 +220,7 @@ public class Message implements JsonSerializable {
 
   private static final Gson GSON = new Gson();
   public static final Message EMPTY = new Message(null);
-  
+
   public OP op;
   public Map<String, Object> data = new HashMap<>();
   public String ticket = "anonymous";
@@ -260,11 +260,11 @@ public class Message implements JsonSerializable {
     return (T) data.get(key);
   }
 
-  public <T> T getType(String key, Logger LOG) {
+  public <T> T getType(String key, Logger log) {
     try {
       return getType(key);
     } catch (ClassCastException e) {
-      LOG.error("Failed to get " + key + " from message (Invalid type). " , e);
+      log.error("Failed to get {} from message (Invalid type). ", key , e);
       return null;
     }
   }
@@ -278,6 +278,7 @@ public class Message implements JsonSerializable {
     return sb.toString();
   }
 
+  @Override
   public String toJson() {
     return GSON.toJson(this);
   }
diff --git a/zeppelin-plugins/notebookrepo/azure/src/main/java/org/apache/zeppelin/notebook/repo/AzureNotebookRepo.java b/zeppelin-plugins/notebookrepo/azure/src/main/java/org/apache/zeppelin/notebook/repo/AzureNotebookRepo.java
index e1e10e6..5ad9407 100644
--- a/zeppelin-plugins/notebookrepo/azure/src/main/java/org/apache/zeppelin/notebook/repo/AzureNotebookRepo.java
+++ b/zeppelin-plugins/notebookrepo/azure/src/main/java/org/apache/zeppelin/notebook/repo/AzureNotebookRepo.java
@@ -33,7 +33,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.zeppelin.conf.ZeppelinConfiguration;
 import org.apache.zeppelin.notebook.Note;
 import org.apache.zeppelin.notebook.NoteInfo;
@@ -56,6 +56,7 @@ public class AzureNotebookRepo implements NotebookRepo {
 
   }
 
+  @Override
   public void init(ZeppelinConfiguration conf) throws IOException {
     this.conf = conf;
     user = conf.getString(ZeppelinConfiguration.ConfVars.ZEPPELIN_NOTEBOOK_AZURE_USER);
@@ -102,7 +103,7 @@ public class AzureNotebookRepo implements NotebookRepo {
             LOGGER.warn(e.getMessage());
           }
         } else {
-          LOGGER.debug("Skip invalid note file: " + file.getUri().getPath());
+          LOGGER.debug("Skip invalid note file: {}", file.getUri().getPath());
         }
       }
     }
diff --git a/zeppelin-plugins/notebookrepo/azure/src/main/java/org/apache/zeppelin/notebook/repo/OldAzureNotebookRepo.java b/zeppelin-plugins/notebookrepo/azure/src/main/java/org/apache/zeppelin/notebook/repo/OldAzureNotebookRepo.java
index 2b1056d..27e31c6 100644
--- a/zeppelin-plugins/notebookrepo/azure/src/main/java/org/apache/zeppelin/notebook/repo/OldAzureNotebookRepo.java
+++ b/zeppelin-plugins/notebookrepo/azure/src/main/java/org/apache/zeppelin/notebook/repo/OldAzureNotebookRepo.java
@@ -25,10 +25,9 @@ import com.microsoft.azure.storage.file.CloudFileDirectory;
 import com.microsoft.azure.storage.file.CloudFileShare;
 import com.microsoft.azure.storage.file.ListFileItem;
 import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.zeppelin.conf.ZeppelinConfiguration;
 import org.apache.zeppelin.notebook.Note;
-import org.apache.zeppelin.notebook.NoteInfo;
 import org.apache.zeppelin.notebook.OldNoteInfo;
 import org.apache.zeppelin.user.AuthenticationInfo;
 import org.slf4j.Logger;
@@ -60,6 +59,7 @@ public class OldAzureNotebookRepo implements OldNotebookRepo {
 
   }
 
+  @Override
   public void init(ZeppelinConfiguration conf) throws IOException {
     this.conf = conf;
     user = conf.getString(ZeppelinConfiguration.ConfVars.ZEPPELIN_NOTEBOOK_AZURE_USER);
diff --git a/zeppelin-plugins/notebookrepo/filesystem/src/main/java/org/apache/zeppelin/notebook/repo/FileSystemNotebookRepo.java b/zeppelin-plugins/notebookrepo/filesystem/src/main/java/org/apache/zeppelin/notebook/repo/FileSystemNotebookRepo.java
index e74f286..70e71c6 100644
--- a/zeppelin-plugins/notebookrepo/filesystem/src/main/java/org/apache/zeppelin/notebook/repo/FileSystemNotebookRepo.java
+++ b/zeppelin-plugins/notebookrepo/filesystem/src/main/java/org/apache/zeppelin/notebook/repo/FileSystemNotebookRepo.java
@@ -45,9 +45,10 @@ public class FileSystemNotebookRepo implements NotebookRepo {
 
   }
 
+  @Override
   public void init(ZeppelinConfiguration zConf) throws IOException {
     this.fs = new FileSystemStorage(zConf, zConf.getString(ZeppelinConfiguration.ConfVars.ZEPPELIN_NOTEBOOK_DIR));
-    LOGGER.info("Creating FileSystem: " + this.fs.getFs().getClass().getName());
+    LOGGER.info("Creating FileSystem: {}", this.fs.getFs().getClass().getName());
     this.notebookDir = this.fs.makeQualified(new Path(zConf.getNotebookDir()));
     LOGGER.info("Using folder {} to store notebook", notebookDir);
     this.fs.tryMkDir(notebookDir);
@@ -63,7 +64,7 @@ public class FileSystemNotebookRepo implements NotebookRepo {
             getNotePath(notebookDir.toString(), path.toString()));
         noteInfos.put(noteInfo.getId(), noteInfo);
       } catch (IOException e) {
-        LOGGER.warn("Fail to get NoteInfo for note: " + path.getName(), e);
+        LOGGER.warn("Fail to get NoteInfo for note: {}", path.getName(), e);
       }
     }
     return noteInfos;
@@ -108,14 +109,14 @@ public class FileSystemNotebookRepo implements NotebookRepo {
   public void remove(String noteId, String notePath, AuthenticationInfo subject)
       throws IOException {
     if (!this.fs.delete(new Path(notebookDir.toString(), buildNoteFileName(noteId, notePath)))) {
-      LOGGER.warn("Fail to move note, noteId: " + notePath + ", notePath: " + notePath);
+      LOGGER.warn("Fail to move note, noteId: {}, notePath: {}", notePath, notePath);
     }
   }
 
   @Override
   public void remove(String folderPath, AuthenticationInfo subject) throws IOException {
     if (!this.fs.delete(new Path(notebookDir, folderPath.substring(1)))) {
-      LOGGER.warn("Fail to remove folder: " + folderPath);
+      LOGGER.warn("Fail to remove folder: {}", folderPath);
     }
   }
 
diff --git a/zeppelin-plugins/notebookrepo/filesystem/src/main/java/org/apache/zeppelin/notebook/repo/OldFileSystemNotebookRepo.java b/zeppelin-plugins/notebookrepo/filesystem/src/main/java/org/apache/zeppelin/notebook/repo/OldFileSystemNotebookRepo.java
index 86f3728..f49e7c5 100644
--- a/zeppelin-plugins/notebookrepo/filesystem/src/main/java/org/apache/zeppelin/notebook/repo/OldFileSystemNotebookRepo.java
+++ b/zeppelin-plugins/notebookrepo/filesystem/src/main/java/org/apache/zeppelin/notebook/repo/OldFileSystemNotebookRepo.java
@@ -4,7 +4,6 @@ import org.apache.hadoop.fs.Path;
 import org.apache.zeppelin.conf.ZeppelinConfiguration;
 import org.apache.zeppelin.notebook.FileSystemStorage;
 import org.apache.zeppelin.notebook.Note;
-import org.apache.zeppelin.notebook.NoteInfo;
 import org.apache.zeppelin.notebook.OldNoteInfo;
 import org.apache.zeppelin.user.AuthenticationInfo;
 import org.slf4j.Logger;
@@ -34,11 +33,11 @@ public class OldFileSystemNotebookRepo implements OldNotebookRepo {
 
   }
 
+  @Override
   public void init(ZeppelinConfiguration zConf) throws IOException {
     this.fs = new FileSystemStorage(zConf,
             zConf.getString(ZeppelinConfiguration.ConfVars.ZEPPELIN_NOTEBOOK_DIR));
-    LOGGER.info("Creating FileSystem: " + this.fs.getFs().getClass().getName() +
-        " for Zeppelin Notebook.");
+    LOGGER.info("Creating FileSystem: {} for Zeppelin Notebook.", this.fs.getFs().getClass().getName());
     this.notebookDir = this.fs.makeQualified(new Path(zConf.getNotebookDir()));
     LOGGER.info("Using folder {} to store notebook", notebookDir);
     this.fs.tryMkDir(notebookDir);
diff --git a/zeppelin-plugins/notebookrepo/gcs/src/main/java/org/apache/zeppelin/notebook/repo/GCSNotebookRepo.java b/zeppelin-plugins/notebookrepo/gcs/src/main/java/org/apache/zeppelin/notebook/repo/GCSNotebookRepo.java
index e882b53..a658c57 100644
--- a/zeppelin-plugins/notebookrepo/gcs/src/main/java/org/apache/zeppelin/notebook/repo/GCSNotebookRepo.java
+++ b/zeppelin-plugins/notebookrepo/gcs/src/main/java/org/apache/zeppelin/notebook/repo/GCSNotebookRepo.java
@@ -27,21 +27,21 @@ import com.google.cloud.storage.Storage.BlobListOption;
 import com.google.cloud.storage.StorageException;
 import com.google.cloud.storage.StorageOptions;
 import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
-import com.google.common.base.Strings;
 import com.google.gson.JsonParseException;
 
 import java.io.FileInputStream;
 import java.io.IOException;
+import java.nio.charset.StandardCharsets;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.zeppelin.conf.ZeppelinConfiguration;
 import org.apache.zeppelin.conf.ZeppelinConfiguration.ConfVars;
 import org.apache.zeppelin.notebook.Note;
@@ -98,7 +98,7 @@ public class GCSNotebookRepo implements NotebookRepo {
 
     // pathComponents excludes empty string if trailing slash is present
     List<String> pathComponents = Arrays.asList(storageDirWithoutScheme.split("/"));
-    if (pathComponents.size() < 1) {
+    if (pathComponents.isEmpty()) {
       throw new IOException(String.format(
           "GCS storage directory '%s' must be in the form gs://bucketname/path/to/dir",
           gcsStorageDir));
@@ -108,7 +108,7 @@ public class GCSNotebookRepo implements NotebookRepo {
       this.basePath = Optional.of(StringUtils.join(
           pathComponents.subList(1, pathComponents.size()), "/"));
     } else {
-      this.basePath = Optional.absent();
+      this.basePath = Optional.empty();
     }
 
     // Notes are stored at gs://bucketName/basePath/<note-id>/note.json
@@ -194,7 +194,7 @@ public class GCSNotebookRepo implements NotebookRepo {
         .setContentType("application/json")
         .build();
     try {
-      storage.create(info, note.toJson().getBytes("UTF-8"));
+      storage.create(info, note.toJson().getBytes(StandardCharsets.UTF_8));
     } catch (StorageException se) {
       throw new IOException("Could not write " + info.toString() + ": " + se.getMessage(), se);
     }
@@ -212,7 +212,7 @@ public class GCSNotebookRepo implements NotebookRepo {
 
   @Override
   public void remove(String noteId, String notePath, AuthenticationInfo subject) throws IOException {
-    Preconditions.checkArgument(!Strings.isNullOrEmpty(noteId));
+    Preconditions.checkArgument(StringUtils.isNotEmpty(noteId));
     BlobId blobId = makeBlobId(noteId, notePath);
     try {
       boolean deleted = storage.delete(blobId);
diff --git a/zeppelin-plugins/notebookrepo/gcs/src/main/java/org/apache/zeppelin/notebook/repo/OldGCSNotebookRepo.java b/zeppelin-plugins/notebookrepo/gcs/src/main/java/org/apache/zeppelin/notebook/repo/OldGCSNotebookRepo.java
index 4394676..15135c3 100644
--- a/zeppelin-plugins/notebookrepo/gcs/src/main/java/org/apache/zeppelin/notebook/repo/OldGCSNotebookRepo.java
+++ b/zeppelin-plugins/notebookrepo/gcs/src/main/java/org/apache/zeppelin/notebook/repo/OldGCSNotebookRepo.java
@@ -27,15 +27,12 @@ import com.google.cloud.storage.Storage.BlobListOption;
 import com.google.cloud.storage.StorageException;
 import com.google.cloud.storage.StorageOptions;
 import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
-import com.google.common.base.Strings;
 import com.google.gson.JsonParseException;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.zeppelin.conf.ZeppelinConfiguration;
 import org.apache.zeppelin.conf.ZeppelinConfiguration.ConfVars;
 import org.apache.zeppelin.notebook.Note;
-import org.apache.zeppelin.notebook.NoteInfo;
 import org.apache.zeppelin.notebook.OldNoteInfo;
 import org.apache.zeppelin.user.AuthenticationInfo;
 import org.slf4j.Logger;
@@ -43,11 +40,13 @@ import org.slf4j.LoggerFactory;
 
 import java.io.FileInputStream;
 import java.io.IOException;
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -67,7 +66,7 @@ import java.util.regex.Pattern;
  */
 public class OldGCSNotebookRepo implements OldNotebookRepo {
 
-  private static final Logger LOG = LoggerFactory.getLogger(GCSNotebookRepo.class);
+  private static final Logger LOG = LoggerFactory.getLogger(OldGCSNotebookRepo.class);
   private String encoding;
   private String bucketName;
   private Optional<String> basePath;
@@ -99,7 +98,7 @@ public class OldGCSNotebookRepo implements OldNotebookRepo {
 
     // pathComponents excludes empty string if trailing slash is present
     List<String> pathComponents = Arrays.asList(storageDirWithoutScheme.split("/"));
-    if (pathComponents.size() < 1) {
+    if (pathComponents.isEmpty()) {
       throw new IOException(String.format(
           "GCS storage directory '%s' must be in the form gs://bucketname/path/to/dir",
           gcsStorageDir));
@@ -109,7 +108,7 @@ public class OldGCSNotebookRepo implements OldNotebookRepo {
       this.basePath = Optional.of(StringUtils.join(
           pathComponents.subList(1, pathComponents.size()), "/"));
     } else {
-      this.basePath = Optional.absent();
+      this.basePath = Optional.empty();
     }
 
     // Notes are stored at gs://bucketName/basePath/<note-id>/note.json
@@ -189,7 +188,7 @@ public class OldGCSNotebookRepo implements OldNotebookRepo {
         .setContentType("application/json")
         .build();
     try {
-      storage.create(info, note.toJson().getBytes("UTF-8"));
+      storage.create(info, note.toJson().getBytes(StandardCharsets.UTF_8));
     } catch (StorageException se) {
       throw new IOException("Could not write " + info.toString() + ": " + se.getMessage(), se);
     }
@@ -197,7 +196,7 @@ public class OldGCSNotebookRepo implements OldNotebookRepo {
 
   @Override
   public void remove(String noteId, AuthenticationInfo subject) throws IOException {
-    Preconditions.checkArgument(!Strings.isNullOrEmpty(noteId));
+    Preconditions.checkArgument(StringUtils.isNotEmpty(noteId));
     BlobId blobId = makeBlobId(noteId);
     try {
       boolean deleted = storage.delete(blobId);
diff --git a/zeppelin-plugins/notebookrepo/oss/src/main/java/org/apache/zeppelin/notebook/repo/OSSNotebookRepo.java b/zeppelin-plugins/notebookrepo/oss/src/main/java/org/apache/zeppelin/notebook/repo/OSSNotebookRepo.java
index a7f1cb2..72994f1 100644
--- a/zeppelin-plugins/notebookrepo/oss/src/main/java/org/apache/zeppelin/notebook/repo/OSSNotebookRepo.java
+++ b/zeppelin-plugins/notebookrepo/oss/src/main/java/org/apache/zeppelin/notebook/repo/OSSNotebookRepo.java
@@ -37,6 +37,7 @@ import org.slf4j.LoggerFactory;
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashMap;
@@ -57,6 +58,7 @@ public class OSSNotebookRepo implements NotebookRepo {
   public OSSNotebookRepo() {
   }
 
+  @Override
   public void init(ZeppelinConfiguration conf) throws IOException {
     String endpoint = conf.getOSSEndpoint();
     bucketName = conf.getOSSBucketName();
@@ -93,7 +95,7 @@ public class OSSNotebookRepo implements NotebookRepo {
             LOGGER.warn(e.getMessage());
           }
         } else {
-          LOGGER.debug("Skip invalid note file: " + s.getKey());
+          LOGGER.debug("Skip invalid note file: {}", s.getKey());
         }
       }
       nextMarker = objectListing.getNextMarker();
@@ -109,7 +111,7 @@ public class OSSNotebookRepo implements NotebookRepo {
     InputStream in = null;
     try {
       in = ossObject.getObjectContent();
-      return Note.fromJson(IOUtils.toString(in));
+      return Note.fromJson(IOUtils.toString(in, StandardCharsets.UTF_8));
     } finally {
       if (in != null) {
         in.close();
@@ -160,7 +162,7 @@ public class OSSNotebookRepo implements NotebookRepo {
             LOGGER.warn(e.getMessage());
           }
         } else {
-          LOGGER.debug("Skip invalid note file: " + s.getKey());
+          LOGGER.debug("Skip invalid note file: {}", s.getKey());
         }
       }
       nextMarker = objectListing.getNextMarker();
@@ -183,8 +185,8 @@ public class OSSNotebookRepo implements NotebookRepo {
               .withPrefix(rootFolder + folderPath + "/")
               .withMarker(nextMarker);
       objectListing = ossClient.listObjects(listObjectsRequest);
-      if (objectListing.getObjectSummaries().size() > 0) {
-        List<String> keys = new ArrayList();
+      if (!objectListing.getObjectSummaries().isEmpty()) {
+        List<String> keys = new ArrayList<>();
         for (OSSObjectSummary s : objectListing.getObjectSummaries()) {
           keys.add(s.getKey());
         }
diff --git a/zeppelin-plugins/notebookrepo/zeppelin-hub/src/main/java/org/apache/zeppelin/notebook/repo/zeppelinhub/OldZeppelinHubRepo.java b/zeppelin-plugins/notebookrepo/zeppelin-hub/src/main/java/org/apache/zeppelin/notebook/repo/zeppelinhub/OldZeppelinHubRepo.java
index a56c473..9af3c1e 100644
--- a/zeppelin-plugins/notebookrepo/zeppelin-hub/src/main/java/org/apache/zeppelin/notebook/repo/zeppelinhub/OldZeppelinHubRepo.java
+++ b/zeppelin-plugins/notebookrepo/zeppelin-hub/src/main/java/org/apache/zeppelin/notebook/repo/zeppelinhub/OldZeppelinHubRepo.java
@@ -21,13 +21,11 @@ import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.Lists;
 import com.google.gson.Gson;
 import com.google.gson.reflect.TypeToken;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.zeppelin.conf.ZeppelinConfiguration;
 import org.apache.zeppelin.notebook.Note;
-import org.apache.zeppelin.notebook.NoteInfo;
 import org.apache.zeppelin.notebook.OldNoteInfo;
 import org.apache.zeppelin.notebook.repo.NotebookRepoSettingsInfo;
-import org.apache.zeppelin.notebook.repo.NotebookRepoWithVersionControl;
 import org.apache.zeppelin.notebook.repo.OldNotebookRepoWithVersionControl;
 import org.apache.zeppelin.notebook.repo.zeppelinhub.model.Instance;
 import org.apache.zeppelin.notebook.repo.zeppelinhub.model.UserSessionContainer;
@@ -74,6 +72,7 @@ public class OldZeppelinHubRepo implements OldNotebookRepoWithVersionControl {
     init(conf);
   }
 
+  @Override
   public void init(ZeppelinConfiguration conf) {
     this.conf = conf;
     String zeppelinHubUrl = getZeppelinHubUrl(conf);
@@ -173,7 +172,7 @@ public class OldZeppelinHubRepo implements OldNotebookRepoWithVersionControl {
     }
     return (subject.isAnonymous() && !conf.isAnonymousAllowed()) ? false : true;
   }
-  
+
   @Override
   public List<OldNoteInfo> list(AuthenticationInfo subject) throws IOException {
     if (!isSubjectValid(subject)) {
@@ -239,7 +238,7 @@ public class OldZeppelinHubRepo implements OldNotebookRepoWithVersionControl {
     }
     String endpoint = Joiner.on("/").join(noteId, "checkpoint");
     String content = GSON.toJson(ImmutableMap.of("message", checkpointMsg));
-    
+
     String token = getUserToken(subject.getUser());
     String response = restApiClient.putWithResponseBody(token, endpoint, content);
 
@@ -279,7 +278,7 @@ public class OldZeppelinHubRepo implements OldNotebookRepoWithVersionControl {
     }
     return history;
   }
-  
+
   private String getUserToken(String user) {
     return tokenManager.getUserToken(user);
   }
@@ -306,7 +305,7 @@ public class OldZeppelinHubRepo implements OldNotebookRepoWithVersionControl {
       //TODO(xxx): handle this case.
       instances = Collections.emptyList();
     }
-    
+
     NotebookRepoSettingsInfo repoSetting = NotebookRepoSettingsInfo.newInstance();
     repoSetting.type = NotebookRepoSettingsInfo.Type.DROPDOWN;
     for (Instance instance : instances) {
diff --git a/zeppelin-plugins/notebookrepo/zeppelin-hub/src/main/java/org/apache/zeppelin/notebook/repo/zeppelinhub/ZeppelinHubRepo.java b/zeppelin-plugins/notebookrepo/zeppelin-hub/src/main/java/org/apache/zeppelin/notebook/repo/zeppelinhub/ZeppelinHubRepo.java
index 3475c53..8c2b028 100644
--- a/zeppelin-plugins/notebookrepo/zeppelin-hub/src/main/java/org/apache/zeppelin/notebook/repo/zeppelinhub/ZeppelinHubRepo.java
+++ b/zeppelin-plugins/notebookrepo/zeppelin-hub/src/main/java/org/apache/zeppelin/notebook/repo/zeppelinhub/ZeppelinHubRepo.java
@@ -24,7 +24,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.zeppelin.conf.ZeppelinConfiguration;
 import org.apache.zeppelin.notebook.Note;
 import org.apache.zeppelin.notebook.NoteInfo;
@@ -62,7 +62,7 @@ public class ZeppelinHubRepo implements NotebookRepoWithVersionControl {
 
   private String token;
   private ZeppelinhubRestApiHandler restApiClient;
-  
+
   private ZeppelinConfiguration conf;
 
   public ZeppelinHubRepo() {
@@ -74,6 +74,7 @@ public class ZeppelinHubRepo implements NotebookRepoWithVersionControl {
     init(conf);
   }
 
+  @Override
   public void init(ZeppelinConfiguration conf) {
     this.conf = conf;
     String zeppelinHubUrl = getZeppelinHubUrl(conf);
@@ -173,7 +174,7 @@ public class ZeppelinHubRepo implements NotebookRepoWithVersionControl {
     }
     return (subject.isAnonymous() && !conf.isAnonymousAllowed()) ? false : true;
   }
-  
+
   @Override
   public Map<String, NoteInfo> list(AuthenticationInfo subject) throws IOException {
     if (!isSubjectValid(subject)) {
@@ -258,7 +259,7 @@ public class ZeppelinHubRepo implements NotebookRepoWithVersionControl {
     }
     String endpoint = Joiner.on("/").join(noteId, "checkpoint");
     String content = GSON.toJson(ImmutableMap.of("message", checkpointMsg));
-    
+
     String token = getUserToken(subject.getUser());
     String response = restApiClient.putWithResponseBody(token, endpoint, content);
 
@@ -298,7 +299,7 @@ public class ZeppelinHubRepo implements NotebookRepoWithVersionControl {
     }
     return history;
   }
-  
+
   private String getUserToken(String user) {
     return tokenManager.getUserToken(user);
   }
@@ -325,7 +326,7 @@ public class ZeppelinHubRepo implements NotebookRepoWithVersionControl {
       //TODO(xxx): handle this case.
       instances = Collections.emptyList();
     }
-    
+
     NotebookRepoSettingsInfo repoSetting = NotebookRepoSettingsInfo.newInstance();
     repoSetting.type = NotebookRepoSettingsInfo.Type.DROPDOWN;
     for (Instance instance : instances) {
diff --git a/zeppelin-server/src/main/java/org/apache/zeppelin/rest/ClusterRestApi.java b/zeppelin-server/src/main/java/org/apache/zeppelin/rest/ClusterRestApi.java
index 82a0f51..9aca780 100644
--- a/zeppelin-server/src/main/java/org/apache/zeppelin/rest/ClusterRestApi.java
+++ b/zeppelin-server/src/main/java/org/apache/zeppelin/rest/ClusterRestApi.java
@@ -36,6 +36,7 @@ import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -81,7 +82,7 @@ public class ClusterRestApi {
   @Path("/nodes")
   @ZeppelinApi
   public Response getClusterNodes(){
-    ArrayList<HashMap<String, Object>> nodes = new ArrayList<HashMap<String, Object>>();
+    List<Map<String, Object>> nodes = new ArrayList<>();
 
     Map<String, HashMap<String, Object>> clusterMeta = null;
     Map<String, HashMap<String, Object>> intpMeta = null;
@@ -95,7 +96,7 @@ public class ClusterRestApi {
       }
       String serverNodeName = (String) serverMetaEntity.getValue().get(ClusterMeta.NODE_NAME);
 
-      ArrayList<String> arrIntpProcess = new ArrayList<>();
+      List<String> arrIntpProcess = new ArrayList<>();
       int intpProcCount = 0;
       for (Map.Entry<String, HashMap<String, Object>> intpMetaEntity : intpMeta.entrySet()) {
         if (!intpMetaEntity.getValue().containsKey(ClusterMeta.NODE_NAME)
@@ -170,20 +171,19 @@ public class ClusterRestApi {
         sortProperties.put(ClusterMeta.INTP_PROCESS_LIST, properties.get(ClusterMeta.INTP_PROCESS_LIST));
       }
 
-      HashMap<String, Object> node = new HashMap<String, Object>();
+      Map<String, Object> node = new HashMap<>();
       node.put(ClusterMeta.NODE_NAME, nodeName);
       node.put(PROPERTIES, sortProperties);
 
       nodes.add(node);
     }
 
-    return new JsonResponse(Response.Status.OK, "", nodes).build();
+    return new JsonResponse<>(Response.Status.OK, "", nodes).build();
   }
 
   private String formatLocalDateTime(LocalDateTime localDateTime) {
     DateTimeFormatter dtf = DateTimeFormatter.ISO_DATE_TIME;
-    String strDate = localDateTime.format(dtf);
-    return strDate;
+    return localDateTime.format(dtf);
   }
 
   /**
@@ -194,7 +194,7 @@ public class ClusterRestApi {
   @ZeppelinApi
   public Response getClusterNode(@PathParam("nodeName") String nodeName,
                                  @PathParam("intpName") String intpName){
-    ArrayList<HashMap<String, Object>> intpProcesses = new ArrayList<HashMap<String, Object>>();
+    List<Map<String, Object>> intpProcesses = new ArrayList<>();
 
     Map<String, HashMap<String, Object>> intpMeta = null;
     intpMeta = clusterManagerServer.getClusterMeta(ClusterMetaType.INTP_PROCESS_META, "");
@@ -204,12 +204,12 @@ public class ClusterRestApi {
       String intpNodeName = (String) intpMetaEntity.getValue().get(ClusterMeta.NODE_NAME);
 
       if (null != intpNodeName && intpNodeName.equals(nodeName)) {
-        HashMap<String, Object> node = new HashMap<String, Object>();
+        Map<String, Object> node = new HashMap<>();
         node.put(ClusterMeta.NODE_NAME, intpNodeName);
         node.put(PROPERTIES, intpMetaEntity.getValue());
 
         // format LocalDateTime
-        HashMap<String, Object> properties = intpMetaEntity.getValue();
+        Map<String, Object> properties = intpMetaEntity.getValue();
         if (properties.containsKey(ClusterMeta.INTP_START_TIME)) {
           Object intpStartTime = properties.get(ClusterMeta.INTP_START_TIME);
           if (intpStartTime instanceof LocalDateTime) {
@@ -235,6 +235,6 @@ public class ClusterRestApi {
       }
     }
 
-    return new JsonResponse(Response.Status.OK, "", intpProcesses).build();
+    return new JsonResponse<>(Response.Status.OK, "", intpProcesses).build();
   }
 }
diff --git a/zeppelin-server/src/main/java/org/apache/zeppelin/rest/ConfigurationsRestApi.java b/zeppelin-server/src/main/java/org/apache/zeppelin/rest/ConfigurationsRestApi.java
index c3f9f63..c414947 100644
--- a/zeppelin-server/src/main/java/org/apache/zeppelin/rest/ConfigurationsRestApi.java
+++ b/zeppelin-server/src/main/java/org/apache/zeppelin/rest/ConfigurationsRestApi.java
@@ -53,9 +53,9 @@ public class ConfigurationsRestApi extends AbstractRestApi {
     try {
       Map<String, String> properties =
           configurationService.getAllProperties(getServiceContext(), new RestServiceCallback<>());
-      return new JsonResponse(Status.OK, "", properties).build();
+      return new JsonResponse<>(Status.OK, "", properties).build();
     } catch (IOException e) {
-      return new JsonResponse(Status.INTERNAL_SERVER_ERROR, "Fail to get configuration", e).build();
+      return new JsonResponse<>(Status.INTERNAL_SERVER_ERROR, "Fail to get configuration", e).build();
     }
   }
 
@@ -67,9 +67,9 @@ public class ConfigurationsRestApi extends AbstractRestApi {
       Map<String, String> properties =
           configurationService.getPropertiesWithPrefix(
               prefix, getServiceContext(), new RestServiceCallback<>());
-      return new JsonResponse(Status.OK, "", properties).build();
+      return new JsonResponse<>(Status.OK, "", properties).build();
     } catch (IOException e) {
-      return new JsonResponse(Status.INTERNAL_SERVER_ERROR, "Fail to get configuration", e).build();
+      return new JsonResponse<>(Status.INTERNAL_SERVER_ERROR, "Fail to get configuration", e).build();
     }
   }
 }
diff --git a/zeppelin-server/src/main/java/org/apache/zeppelin/rest/HeliumRestApi.java b/zeppelin-server/src/main/java/org/apache/zeppelin/rest/HeliumRestApi.java
index c206dc7..ecbabdd 100644
--- a/zeppelin-server/src/main/java/org/apache/zeppelin/rest/HeliumRestApi.java
+++ b/zeppelin-server/src/main/java/org/apache/zeppelin/rest/HeliumRestApi.java
@@ -30,6 +30,7 @@ import org.slf4j.LoggerFactory;
 
 import java.io.File;
 import java.io.IOException;
+import java.nio.charset.StandardCharsets;
 import java.util.List;
 import java.util.Map;
 
@@ -78,7 +79,7 @@ public class HeliumRestApi {
       return new JsonResponse<>(Response.Status.OK, "", helium.getAllPackageInfo()).build();
     } catch (RuntimeException e) {
       logger.error(e.getMessage(), e);
-      return new JsonResponse(Response.Status.INTERNAL_SERVER_ERROR, e.getMessage()).build();
+      return new JsonResponse<>(Response.Status.INTERNAL_SERVER_ERROR, e.getMessage()).build();
     }
   }
 
@@ -92,7 +93,7 @@ public class HeliumRestApi {
       return new JsonResponse<>(Response.Status.OK, "", helium.getAllEnabledPackages()).build();
     } catch (RuntimeException e) {
       logger.error(e.getMessage(), e);
-      return new JsonResponse(Response.Status.INTERNAL_SERVER_ERROR, e.getMessage()).build();
+      return new JsonResponse<>(Response.Status.INTERNAL_SERVER_ERROR, e.getMessage()).build();
     }
   }
 
@@ -103,7 +104,7 @@ public class HeliumRestApi {
   @Path("package/{packageName}")
   public Response getSinglePackageInfo(@PathParam("packageName") String packageName) {
     if (StringUtils.isEmpty(packageName)) {
-      return new JsonResponse(Response.Status.BAD_REQUEST,
+      return new JsonResponse<>(Response.Status.BAD_REQUEST,
               "Can't get package info for empty name").build();
     }
 
@@ -112,7 +113,7 @@ public class HeliumRestApi {
           Response.Status.OK, "", helium.getSinglePackageInfo(packageName)).build();
     } catch (RuntimeException e) {
       logger.error(e.getMessage(), e);
-      return new JsonResponse(Response.Status.INTERNAL_SERVER_ERROR, e.getMessage()).build();
+      return new JsonResponse<>(Response.Status.INTERNAL_SERVER_ERROR, e.getMessage()).build();
     }
   }
 
@@ -124,23 +125,23 @@ public class HeliumRestApi {
     try {
       note = notebook.getNote(noteId);
     } catch (IOException e) {
-      return new JsonResponse(Response.Status.NOT_FOUND,
+      return new JsonResponse<>(Response.Status.NOT_FOUND,
               "Fail to get note: " + noteId + "\n" + ExceptionUtils.getStackTrace(e)).build();
     }
     if (note == null) {
-      return new JsonResponse(Response.Status.NOT_FOUND, "Note " + noteId + " not found").build();
+      return new JsonResponse<>(Response.Status.NOT_FOUND, "Note " + noteId + " not found").build();
     }
 
     Paragraph paragraph = note.getParagraph(paragraphId);
     if (paragraph == null) {
-      return new JsonResponse(Response.Status.NOT_FOUND, "Paragraph " + paragraphId + " not found")
+      return new JsonResponse<>(Response.Status.NOT_FOUND, "Paragraph " + paragraphId + " not found")
           .build();
     }
     try {
       return new JsonResponse<>(Response.Status.OK, "", helium.suggestApp(paragraph)).build();
     } catch (RuntimeException e) {
       logger.error(e.getMessage(), e);
-      return new JsonResponse(Response.Status.INTERNAL_SERVER_ERROR, e.getMessage()).build();
+      return new JsonResponse<>(Response.Status.INTERNAL_SERVER_ERROR, e.getMessage()).build();
     }
 
   }
@@ -153,16 +154,16 @@ public class HeliumRestApi {
     try {
       note = notebook.getNote(noteId);
     } catch (IOException e) {
-      return new JsonResponse(Response.Status.NOT_FOUND,
+      return new JsonResponse<>(Response.Status.NOT_FOUND,
               "Fail to get note: " + noteId + "\n" + ExceptionUtils.getStackTrace(e)).build();
     }
     if (note == null) {
-      return new JsonResponse(Response.Status.NOT_FOUND, "Note " + noteId + " not found").build();
+      return new JsonResponse<>(Response.Status.NOT_FOUND, "Note " + noteId + " not found").build();
     }
 
     Paragraph paragraph = note.getParagraph(paragraphId);
     if (paragraph == null) {
-      return new JsonResponse(Response.Status.NOT_FOUND, "Paragraph " + paragraphId + " not found")
+      return new JsonResponse<>(Response.Status.NOT_FOUND, "Paragraph " + paragraphId + " not found")
           .build();
     }
     HeliumPackage pkg = HeliumPackage.fromJson(heliumPackage);
@@ -171,7 +172,7 @@ public class HeliumRestApi {
               helium.getApplicationFactory().loadAndRun(pkg, paragraph)).build();
     } catch (RuntimeException e) {
       logger.error(e.getMessage(), e);
-      return new JsonResponse(Response.Status.INTERNAL_SERVER_ERROR, e.getMessage()).build();
+      return new JsonResponse<>(Response.Status.INTERNAL_SERVER_ERROR, e.getMessage()).build();
     }
   }
 
@@ -181,7 +182,7 @@ public class HeliumRestApi {
   public Response bundleLoad(@QueryParam("refresh") String refresh,
           @PathParam("packageName") String packageName) {
     if (StringUtils.isEmpty(packageName)) {
-      return new JsonResponse(
+      return new JsonResponse<>(
           Response.Status.BAD_REQUEST,
           "Can't get bundle due to empty package name").build();
     }
@@ -208,7 +209,7 @@ public class HeliumRestApi {
       if (bundle == null) {
         return Response.ok().build();
       } else {
-        String stringified = FileUtils.readFileToString(bundle);
+        String stringified = FileUtils.readFileToString(bundle, StandardCharsets.UTF_8);
         return Response.ok(stringified).build();
       }
     } catch (Exception e) {
@@ -225,13 +226,13 @@ public class HeliumRestApi {
   public Response enablePackage(@PathParam("packageName") String packageName, String artifact) {
     try {
       if (helium.enable(packageName, artifact)) {
-        return new JsonResponse(Response.Status.OK).build();
+        return new JsonResponse<>(Response.Status.OK).build();
       } else {
-        return new JsonResponse(Response.Status.NOT_FOUND).build();
+        return new JsonResponse<>(Response.Status.NOT_FOUND).build();
       }
     } catch (IOException e) {
       logger.error(e.getMessage(), e);
-      return new JsonResponse(Response.Status.INTERNAL_SERVER_ERROR, e.getMessage()).build();
+      return new JsonResponse<>(Response.Status.INTERNAL_SERVER_ERROR, e.getMessage()).build();
     }
   }
 
@@ -240,13 +241,13 @@ public class HeliumRestApi {
   public Response disablePackage(@PathParam("packageName") String packageName) {
     try {
       if (helium.disable(packageName)) {
-        return new JsonResponse(Response.Status.OK).build();
+        return new JsonResponse<>(Response.Status.OK).build();
       } else {
-        return new JsonResponse(Response.Status.NOT_FOUND).build();
+        return new JsonResponse<>(Response.Status.NOT_FOUND).build();
       }
     } catch (IOException e) {
       logger.error(e.getMessage(), e);
-      return new JsonResponse(Response.Status.INTERNAL_SERVER_ERROR, e.getMessage()).build();
+      return new JsonResponse<>(Response.Status.INTERNAL_SERVER_ERROR, e.getMessage()).build();
     }
   }
 
@@ -254,7 +255,7 @@ public class HeliumRestApi {
   @Path("spell/config/{packageName}")
   public Response getSpellConfigUsingMagic(@PathParam("packageName") String packageName) {
     if (StringUtils.isEmpty(packageName)) {
-      return new JsonResponse(Response.Status.BAD_REQUEST, "packageName is empty").build();
+      return new JsonResponse<>(Response.Status.BAD_REQUEST, "packageName is empty").build();
     }
 
     try {
@@ -262,14 +263,14 @@ public class HeliumRestApi {
           helium.getSpellConfig(packageName);
 
       if (config == null) {
-        return new JsonResponse(Response.Status.BAD_REQUEST,
+        return new JsonResponse<>(Response.Status.BAD_REQUEST,
             "Failed to find enabled package for " + packageName).build();
       }
 
       return new JsonResponse<>(Response.Status.OK, config).build();
     } catch (RuntimeException e) {
       logger.error(e.getMessage(), e);
-      return new JsonResponse(Response.Status.INTERNAL_SERVER_ERROR, e.getMessage()).build();
+      return new JsonResponse<>(Response.Status.INTERNAL_SERVER_ERROR, e.getMessage()).build();
     }
   }
 
@@ -281,7 +282,7 @@ public class HeliumRestApi {
       return new JsonResponse<>(Response.Status.OK, config).build();
     } catch (RuntimeException e) {
       logger.error(e.getMessage(), e);
-      return new JsonResponse(Response.Status.INTERNAL_SERVER_ERROR, e.getMessage()).build();
+      return new JsonResponse<>(Response.Status.INTERNAL_SERVER_ERROR, e.getMessage()).build();
     }
   }
 
@@ -290,7 +291,7 @@ public class HeliumRestApi {
   public Response getPackageConfig(@PathParam("packageName") String packageName,
           @PathParam("artifact") String artifact) {
     if (StringUtils.isEmpty(packageName) || StringUtils.isEmpty(artifact)) {
-      return new JsonResponse(Response.Status.BAD_REQUEST,
+      return new JsonResponse<>(Response.Status.BAD_REQUEST,
           "package name or artifact is empty"
       ).build();
     }
@@ -300,14 +301,14 @@ public class HeliumRestApi {
           helium.getPackageConfig(packageName, artifact);
 
       if (config == null) {
-        return new JsonResponse(Response.Status.BAD_REQUEST,
+        return new JsonResponse<>(Response.Status.BAD_REQUEST,
             "Failed to find package for " + artifact).build();
       }
 
       return new JsonResponse<>(Response.Status.OK, config).build();
     } catch (RuntimeException e) {
       logger.error(e.getMessage(), e);
-      return new JsonResponse(Response.Status.INTERNAL_SERVER_ERROR, e.getMessage()).build();
+      return new JsonResponse<>(Response.Status.INTERNAL_SERVER_ERROR, e.getMessage()).build();
     }
   }
 
@@ -316,7 +317,7 @@ public class HeliumRestApi {
   public Response updatePackageConfig(@PathParam("packageName") String packageName,
           @PathParam("artifact") String artifact, String rawConfig) {
     if (StringUtils.isEmpty(packageName) || StringUtils.isEmpty(artifact)) {
-      return new JsonResponse(Response.Status.BAD_REQUEST,
+      return new JsonResponse<>(Response.Status.BAD_REQUEST,
           "package name or artifact is empty"
       ).build();
     }
@@ -328,10 +329,10 @@ public class HeliumRestApi {
       return new JsonResponse<>(Response.Status.OK, packageConfig).build();
     } catch (JsonParseException e) {
       logger.error(e.getMessage(), e);
-      return new JsonResponse(Response.Status.BAD_REQUEST,
+      return new JsonResponse<>(Response.Status.BAD_REQUEST,
           e.getMessage()).build();
     } catch (IOException | RuntimeException e) {
-      return new JsonResponse(Response.Status.INTERNAL_SERVER_ERROR,
+      return new JsonResponse<>(Response.Status.INTERNAL_SERVER_ERROR,
           e.getMessage()).build();
     }
   }
@@ -344,7 +345,7 @@ public class HeliumRestApi {
       return new JsonResponse<>(Response.Status.OK, order).build();
     } catch (RuntimeException e) {
       logger.error(e.getMessage(), e);
-      return new JsonResponse(Response.Status.INTERNAL_SERVER_ERROR, e.getMessage()).build();
+      return new JsonResponse<>(Response.Status.INTERNAL_SERVER_ERROR, e.getMessage()).build();
     }
   }
 
@@ -355,10 +356,10 @@ public class HeliumRestApi {
         orderedPackageNameList, new TypeToken<List<String>>(){}.getType());
     try {
       helium.setVisualizationPackageOrder(orderedList);
-      return new JsonResponse(Response.Status.OK).build();
+      return new JsonResponse<>(Response.Status.OK).build();
     } catch (IOException e) {
       logger.error(e.getMessage(), e);
-      return new JsonResponse(Response.Status.INTERNAL_SERVER_ERROR, e.getMessage()).build();
+      return new JsonResponse<>(Response.Status.INTERNAL_SERVER_ERROR, e.getMessage()).build();
     }
   }
 }
diff --git a/zeppelin-server/src/main/java/org/apache/zeppelin/rest/InterpreterRestApi.java b/zeppelin-server/src/main/java/org/apache/zeppelin/rest/InterpreterRestApi.java
index de11e35..e573a35 100644
--- a/zeppelin-server/src/main/java/org/apache/zeppelin/rest/InterpreterRestApi.java
+++ b/zeppelin-server/src/main/java/org/apache/zeppelin/rest/InterpreterRestApi.java
@@ -187,7 +187,7 @@ public class InterpreterRestApi {
   public Response removeSetting(@PathParam("settingId") String settingId) throws IOException {
     LOGGER.info("Remove interpreterSetting {}", settingId);
     interpreterSettingManager.remove(settingId);
-    return new JsonResponse(Status.OK).build();
+    return new JsonResponse<>(Status.OK).build();
   }
 
   /**
@@ -274,7 +274,7 @@ public class InterpreterRestApi {
       return new JsonResponse<>(Status.INTERNAL_SERVER_ERROR, e.getMessage(),
           ExceptionUtils.getStackTrace(e)).build();
     }
-    return new JsonResponse(Status.OK).build();
+    return new JsonResponse<>(Status.OK).build();
   }
 
   /**
@@ -294,7 +294,7 @@ public class InterpreterRestApi {
       return new JsonResponse<>(Status.INTERNAL_SERVER_ERROR, e.getMessage(),
           ExceptionUtils.getStackTrace(e)).build();
     }
-    return new JsonResponse(Status.OK).build();
+    return new JsonResponse<>(Status.OK).build();
   }
 
   /**
diff --git a/zeppelin-server/src/main/java/org/apache/zeppelin/rest/NotebookRestApi.java b/zeppelin-server/src/main/java/org/apache/zeppelin/rest/NotebookRestApi.java
index 82c77ed..11b0cf9 100644
--- a/zeppelin-server/src/main/java/org/apache/zeppelin/rest/NotebookRestApi.java
+++ b/zeppelin-server/src/main/java/org/apache/zeppelin/rest/NotebookRestApi.java
@@ -402,7 +402,7 @@ public class NotebookRestApi extends AbstractRestApi {
         initParagraph(p, paragraphRequest, user);
       }
     }
-    return new JsonResponse(Status.OK, "", note.getId()).build();
+    return new JsonResponse<>(Status.OK, "", note.getId()).build();
   }
 
   /**
@@ -491,7 +491,7 @@ public class NotebookRestApi extends AbstractRestApi {
                 notebookServer.broadcastNoteList(context.getAutheInfo(), context.getUserAndRoles());
               }
             });
-    return new JsonResponse(Status.OK, "").build();
+    return new JsonResponse<>(Status.OK, "").build();
   }
 
   /**
@@ -639,7 +639,7 @@ public class NotebookRestApi extends AbstractRestApi {
                 notebookServer.broadcastNote(result.getNote());
               }
             });
-    return new JsonResponse(Status.OK, "").build();
+    return new JsonResponse<>(Status.OK, "").build();
   }
 
   /**
@@ -664,7 +664,7 @@ public class NotebookRestApi extends AbstractRestApi {
               }
             });
 
-    return new JsonResponse(Status.OK, "").build();
+    return new JsonResponse<>(Status.OK, "").build();
   }
 
   @POST
@@ -675,7 +675,7 @@ public class NotebookRestApi extends AbstractRestApi {
     Paragraph p = notebookService.getNextSessionParagraph(noteId, maxParagraph,
             getServiceContext(),
             new RestServiceCallback<>());
-    return new JsonResponse(Status.OK, p.getId()).build();
+    return new JsonResponse<>(Status.OK, p.getId()).build();
   }
 
   /**
@@ -692,7 +692,7 @@ public class NotebookRestApi extends AbstractRestApi {
     LOGGER.info("Clear all paragraph output of note {}", noteId);
     notebookService.clearAllParagraphOutput(noteId, getServiceContext(),
             new RestServiceCallback<>());
-    return new JsonResponse(Status.OK, "").build();
+    return new JsonResponse<>(Status.OK, "").build();
   }
 
   /**
diff --git a/zeppelin-server/src/main/java/org/apache/zeppelin/rest/SecurityRestApi.java b/zeppelin-server/src/main/java/org/apache/zeppelin/rest/SecurityRestApi.java
index 95d1e32..9d5a6fe 100644
--- a/zeppelin-server/src/main/java/org/apache/zeppelin/rest/SecurityRestApi.java
+++ b/zeppelin-server/src/main/java/org/apache/zeppelin/rest/SecurityRestApi.java
@@ -32,7 +32,6 @@ import javax.ws.rs.Produces;
 import javax.ws.rs.core.Response;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.zeppelin.annotation.ZeppelinApi;
-import org.apache.zeppelin.conf.ZeppelinConfiguration;
 import org.apache.zeppelin.server.JsonResponse;
 import org.apache.zeppelin.service.AuthenticationService;
 import org.apache.zeppelin.ticket.TicketContainer;
@@ -68,10 +67,8 @@ public class SecurityRestApi {
   @Path("ticket")
   @ZeppelinApi
   public Response ticket() {
-    ZeppelinConfiguration conf = ZeppelinConfiguration.create();
     String principal = authenticationService.getPrincipal();
     Set<String> roles = authenticationService.getAssociatedRoles();
-    JsonResponse response;
     // ticket set to anonymous for anonymous user. Simplify testing.
     String ticket;
     if ("anonymous".equals(principal)) {
@@ -85,8 +82,8 @@ public class SecurityRestApi {
     data.put("roles", gson.toJson(roles));
     data.put("ticket", ticket);
 
-    response = new JsonResponse(Response.Status.OK, "", data);
-    LOG.warn(response.toString());
+    JsonResponse<Map<String, String>> response = new JsonResponse<>(Response.Status.OK, "", data);
+    LOG.warn("{}", response);
     return response.build();
   }
 
@@ -136,7 +133,7 @@ public class SecurityRestApi {
       }
     }
 
-    Map<String, List> returnListMap = new HashMap<>();
+    Map<String, List<String>> returnListMap = new HashMap<>();
     returnListMap.put("users", autoSuggestUserList);
     returnListMap.put("roles", autoSuggestRoleList);
 
diff --git a/zeppelin-server/src/main/java/org/apache/zeppelin/service/AdminService.java b/zeppelin-server/src/main/java/org/apache/zeppelin/service/AdminService.java
index 2d912e2..3df728e 100644
--- a/zeppelin-server/src/main/java/org/apache/zeppelin/service/AdminService.java
+++ b/zeppelin-server/src/main/java/org/apache/zeppelin/service/AdminService.java
@@ -32,7 +32,7 @@ import org.apache.zeppelin.rest.message.LoggerRequest;
 public class AdminService {
 
   public List<org.apache.log4j.Logger> getLoggers() {
-    Enumeration loggers = LogManager.getCurrentLoggers();
+    Enumeration<?> loggers = LogManager.getCurrentLoggers();
     return StreamSupport.stream(
             Spliterators.spliteratorUnknownSize(
                 new Iterator<org.apache.log4j.Logger>() {
diff --git a/zeppelin-server/src/main/java/org/apache/zeppelin/service/ConfigurationService.java b/zeppelin-server/src/main/java/org/apache/zeppelin/service/ConfigurationService.java
index 4580e75..e194de1 100644
--- a/zeppelin-server/src/main/java/org/apache/zeppelin/service/ConfigurationService.java
+++ b/zeppelin-server/src/main/java/org/apache/zeppelin/service/ConfigurationService.java
@@ -20,14 +20,10 @@ package org.apache.zeppelin.service;
 
 import javax.inject.Inject;
 import org.apache.zeppelin.conf.ZeppelinConfiguration;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
 import java.io.IOException;
 import java.util.Map;
 
 public class ConfigurationService {
-  private static final Logger LOGGER = LoggerFactory.getLogger(ConfigurationService.class);
 
   private ZeppelinConfiguration zConf;
 
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 44477fb..8cd8ba7 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
@@ -321,7 +321,7 @@ public class NotebookService {
                               ServiceContext context,
                               ServiceCallback<Paragraph> callback) throws IOException {
 
-    LOGGER.info("Start to run paragraph: " + paragraphId + " of note: " + noteId);
+    LOGGER.info("Start to run paragraph: {} of note: {}", paragraphId, noteId);
     if (!checkPermission(noteId, Permission.RUNNER, Message.OP.RUN_PARAGRAPH, context, callback)) {
       return false;
     }
@@ -412,7 +412,7 @@ public class NotebookService {
         for (Map<String, Object> raw : paragraphs) {
           String paragraphId = (String) raw.get("id");
           if (paragraphId == null) {
-            LOGGER.warn("No id found in paragraph json: " + raw);
+            LOGGER.warn("No id found in paragraph json: {}", raw);
             continue;
           }
           try {
@@ -445,7 +445,7 @@ public class NotebookService {
         note.runAll(context.getAutheInfo(), true, false, new HashMap<>());
         return true;
       } catch (Exception e) {
-        LOGGER.warn("Fail to run note: " + note.getName(), e);
+        LOGGER.warn("Fail to run note: {}", note.getName(), e);
         return false;
       }
     }
@@ -588,7 +588,7 @@ public class NotebookService {
 
 
   public void restoreAll(ServiceContext context,
-                         ServiceCallback callback) throws IOException {
+                         ServiceCallback<?> callback) throws IOException {
 
     try {
       notebook.restoreAll(context.getAutheInfo());
@@ -969,7 +969,6 @@ public class NotebookService {
       callback.onSuccess(settings, context);
     } catch (Exception e) {
       callback.onFailure(new IOException("Fail to getEditorSetting", e), context);
-      return;
     }
   }
 
@@ -1021,7 +1020,7 @@ public class NotebookService {
 
     //TODO(zjffdu) folder permission check
     //TODO(zjffdu) folderPath is relative path, need to fix it in frontend
-    LOGGER.info("Move folder " + folderPath + " to trash");
+    LOGGER.info("Move folder {} to trash", folderPath);
 
     String destFolderPath = "/" + NoteManager.TRASH_FOLDER + "/" + folderPath;
     if (notebook.containsNote(destFolderPath)) {