You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zeppelin.apache.org by mo...@apache.org on 2016/06/14 01:33:01 UTC

zeppelin git commit: [ZEPPELIN-957] Normalize note name.

Repository: zeppelin
Updated Branches:
  refs/heads/master 794d4b385 -> bda1cc561


[ZEPPELIN-957] Normalize note name.

### What is this PR for?
It's better if notebook name can be normalized.

### What type of PR is it?
Improvement

### What is the Jira issue?
https://issues.apache.org/jira/browse/ZEPPELIN-957

### How should this be tested?
Try create notebook name with many slashes and no slashes.
You can refer to screen shot.

### Screenshots (if appropriate)
  - before
![be](https://cloud.githubusercontent.com/assets/3348133/15809552/9bf9e26e-2bce-11e6-942c-df655ee52176.gif)

  - after
![af](https://cloud.githubusercontent.com/assets/3348133/15809553/9ff43c48-2bce-11e6-9f69-2b7a00bfc91e.gif)

### Questions:
* Does the licenses files need update? no
* Is there breaking changes for older versions? no
* Does this needs documentation? no

Author: astroshim <hs...@nflabs.com>

Closes #965 from astroshim/ZEPPELIN-957 and squashes the following commits:

eb95adb [astroshim] adjust line
2370654 [astroshim] fix things that moon pointed out.
2f4d245 [astroshim] check windows path
7aca4bf [astroshim] move method to util
2a255ac [astroshim] change method name.
e549977 [astroshim] normalize note name


Project: http://git-wip-us.apache.org/repos/asf/zeppelin/repo
Commit: http://git-wip-us.apache.org/repos/asf/zeppelin/commit/bda1cc56
Tree: http://git-wip-us.apache.org/repos/asf/zeppelin/tree/bda1cc56
Diff: http://git-wip-us.apache.org/repos/asf/zeppelin/diff/bda1cc56

Branch: refs/heads/master
Commit: bda1cc561ca52de90287922b92f3a443187a0fec
Parents: 794d4b3
Author: astroshim <hs...@nflabs.com>
Authored: Sun Jun 12 01:20:42 2016 +0900
Committer: Lee moon soo <mo...@apache.org>
Committed: Mon Jun 13 18:34:34 2016 -0700

----------------------------------------------------------------------
 .../java/org/apache/zeppelin/notebook/Note.java | 16 +++++++++++++
 .../apache/zeppelin/notebook/NotebookTest.java  | 25 ++++++++++++++++++++
 2 files changed, 41 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zeppelin/blob/bda1cc56/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/Note.java
----------------------------------------------------------------------
diff --git a/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/Note.java b/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/Note.java
index 6941dc9..80f2d70 100644
--- a/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/Note.java
+++ b/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/Note.java
@@ -116,7 +116,23 @@ public class Note implements Serializable, JobListener {
     return name;
   }
 
+  private String normalizeNoteName(String name){
+    name = name.trim();
+    name = name.replace("\\", "/");
+    while (name.indexOf("///") >= 0) {
+      name = name.replaceAll("///", "/");
+    }
+    name = name.replaceAll("//", "/");
+    if (name.length() == 0) {
+      name = "/";
+    }
+    return name;
+  }
+
   public void setName(String name) {
+    if (name.indexOf('/') >= 0 || name.indexOf('\\') >= 0) {
+      name = normalizeNoteName(name);
+    }
     this.name = name;
   }
 

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/bda1cc56/zeppelin-zengine/src/test/java/org/apache/zeppelin/notebook/NotebookTest.java
----------------------------------------------------------------------
diff --git a/zeppelin-zengine/src/test/java/org/apache/zeppelin/notebook/NotebookTest.java b/zeppelin-zengine/src/test/java/org/apache/zeppelin/notebook/NotebookTest.java
index 80ef50f..53749d1 100644
--- a/zeppelin-zengine/src/test/java/org/apache/zeppelin/notebook/NotebookTest.java
+++ b/zeppelin-zengine/src/test/java/org/apache/zeppelin/notebook/NotebookTest.java
@@ -643,6 +643,31 @@ public class NotebookTest implements JobListenerFactory{
     notebook.removeNote(note1.getId());
   }
 
+  @Test
+  public void testNormalizeNoteName() throws IOException {
+    // create a notes
+    Note note1  = notebook.createNote();
+
+    note1.setName("MyNote");
+    assertEquals(note1.getName(), "MyNote");
+
+    note1.setName("/MyNote");
+    assertEquals(note1.getName(), "/MyNote");
+
+    note1.setName("MyNote/sub");
+    assertEquals(note1.getName(), "MyNote/sub");
+
+    note1.setName("/MyNote/sub");
+    assertEquals(note1.getName(), "/MyNote/sub");
+
+    note1.setName("///////MyNote//////sub");
+    assertEquals(note1.getName(), "/MyNote/sub");
+
+    note1.setName("\\\\\\MyNote///sub");
+    assertEquals(note1.getName(), "/MyNote/sub");
+
+    notebook.removeNote(note1.getId());
+  }
 
   private void delete(File file){
     if(file.isFile()) file.delete();