Repository: zeppelin
Updated Branches:
  refs/heads/master 86f387e94 -> abc197c2d


[ZEPPELIN-2368]. Option to run all paragraphs *sequentially*

### What is this PR for?

This PR change the "run all paragraphs" to be sequentially running.

### What type of PR is it?
[Improvement]

### Todos
* [ ] - Task

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

### How should this be tested?
* First time? Setup Travis CI as described on 
https://zeppelin.apache.org/contribution/contributions.html#continuous-integration
* Strongly recommended: add automated unit tests for any new or changed behavior
* Outline any manual steps to test the PR here.

### Screenshots (if appropriate)
![sequential](https://user-images.githubusercontent.com/164491/31705273-5d77a476-b3aa-11e7-921e-6f039ee1e376.gif)

### 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 #2627 from zjffdu/ZEPPELIN-2368 and squashes the following commits:

f701d5b [Jeff Zhang] [ZEPPELIN-2368]. Option to run all paragraphs 
*sequentially*


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

Branch: refs/heads/master
Commit: abc197c2df8f2972f94a16003cdac04d08202e7b
Parents: 86f387e
Author: Jeff Zhang <[email protected]>
Authored: Sun Oct 8 09:08:34 2017 +0800
Committer: Jeff Zhang <[email protected]>
Committed: Sat Oct 28 17:07:32 2017 +0800

----------------------------------------------------------------------
 .../zeppelin/conf/ZeppelinConfiguration.java    |  2 +-
 .../java/org/apache/zeppelin/scheduler/Job.java |  4 ++
 .../apache/zeppelin/rest/NotebookRestApi.java   |  2 +-
 .../apache/zeppelin/socket/NotebookServer.java  | 17 ++++--
 .../zeppelin/rest/AbstractTestRestApi.java      | 26 +++++---
 .../rest/ConfigurationsRestApiTest.java         |  2 +-
 .../zeppelin/rest/CredentialsRestApiTest.java   |  2 +-
 .../apache/zeppelin/rest/HeliumRestApiTest.java |  2 +-
 .../zeppelin/rest/InterpreterRestApiTest.java   |  2 +-
 .../zeppelin/rest/NotebookRepoRestApiTest.java  |  2 +-
 .../zeppelin/rest/NotebookRestApiTest.java      | 64 +++++++++++++++++++-
 .../rest/NotebookSecurityRestApiTest.java       |  2 +-
 .../zeppelin/rest/SecurityRestApiTest.java      |  2 +-
 .../zeppelin/rest/ZeppelinRestApiTest.java      | 30 +--------
 .../zeppelin/rest/ZeppelinServerTest.java       | 23 +++++++
 .../zeppelin/rest/ZeppelinSparkClusterTest.java |  2 +-
 .../apache/zeppelin/security/DirAccessTest.java |  4 +-
 .../zeppelin/socket/NotebookServerTest.java     |  2 +-
 .../interpreter/InterpreterSettingManager.java  |  2 +-
 .../java/org/apache/zeppelin/notebook/Note.java | 30 +++++++--
 .../org/apache/zeppelin/notebook/Paragraph.java |  2 +-
 .../interpreter/AbstractInterpreterTest.java    |  3 +-
 .../interpreter/InterpreterFactoryTest.java     | 11 ++--
 .../apache/zeppelin/notebook/NotebookTest.java  | 61 +++++++------------
 24 files changed, 194 insertions(+), 105 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zeppelin/blob/abc197c2/zeppelin-interpreter/src/main/java/org/apache/zeppelin/conf/ZeppelinConfiguration.java
----------------------------------------------------------------------
diff --git 
a/zeppelin-interpreter/src/main/java/org/apache/zeppelin/conf/ZeppelinConfiguration.java
 
b/zeppelin-interpreter/src/main/java/org/apache/zeppelin/conf/ZeppelinConfiguration.java
index cb249d8..f280475 100644
--- 
a/zeppelin-interpreter/src/main/java/org/apache/zeppelin/conf/ZeppelinConfiguration.java
+++ 
b/zeppelin-interpreter/src/main/java/org/apache/zeppelin/conf/ZeppelinConfiguration.java
@@ -711,7 +711,7 @@ public class ZeppelinConfiguration extends XMLConfiguration 
{
     ZEPPELIN_INTERPRETER_LIFECYCLE_MANAGER_TIMEOUT_CHECK_INTERVAL(
         "zeppelin.interpreter.lifecyclemanager.timeout.checkinterval", 6000L),
     ZEPPELIN_INTERPRETER_LIFECYCLE_MANAGER_TIMEOUT_THRESHOLD(
-        "zeppelin.interpreter.lifecyclemanager.timeout.threshold", 360000L);
+        "zeppelin.interpreter.lifecyclemanager.timeout.threshold", 3600000L);
 
     private String varName;
     @SuppressWarnings("rawtypes")

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/abc197c2/zeppelin-interpreter/src/main/java/org/apache/zeppelin/scheduler/Job.java
----------------------------------------------------------------------
diff --git 
a/zeppelin-interpreter/src/main/java/org/apache/zeppelin/scheduler/Job.java 
b/zeppelin-interpreter/src/main/java/org/apache/zeppelin/scheduler/Job.java
index 191902a..8e25f7b 100644
--- a/zeppelin-interpreter/src/main/java/org/apache/zeppelin/scheduler/Job.java
+++ b/zeppelin-interpreter/src/main/java/org/apache/zeppelin/scheduler/Job.java
@@ -63,6 +63,10 @@ public abstract class Job {
     public boolean isPending() {
       return this == PENDING;
     }
+
+    public boolean isCompleted() {
+      return this == FINISHED || this == ERROR || this == ABORT;
+    }
   }
 
   private String jobName;

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/abc197c2/zeppelin-server/src/main/java/org/apache/zeppelin/rest/NotebookRestApi.java
----------------------------------------------------------------------
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 42234fe..8835984 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
@@ -650,7 +650,7 @@ public class NotebookRestApi {
     checkIfUserCanRun(noteId, "Insufficient privileges you cannot run job for 
this note");
 
     try {
-      note.runAll(subject);
+      note.runAll(subject, true);
     } catch (Exception ex) {
       LOG.error("Exception from run", ex);
       return new JsonResponse<>(Status.PRECONDITION_FAILED,

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/abc197c2/zeppelin-server/src/main/java/org/apache/zeppelin/socket/NotebookServer.java
----------------------------------------------------------------------
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 f9a8ba1..aa5b0fb 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
@@ -1678,7 +1678,10 @@ public class NotebookServer extends WebSocketServlet
       Paragraph p = setParagraphUsingMessage(note, fromMessage,
           paragraphId, text, title, params, config);
 
-      persistAndExecuteSingleParagraph(conn, note, p);
+      if (!persistAndExecuteSingleParagraph(conn, note, p, true)) {
+        // stop execution when one paragraph fails.
+        break;
+      }
     }
   }
 
@@ -1770,7 +1773,7 @@ public class NotebookServer extends WebSocketServlet
     Paragraph p = setParagraphUsingMessage(note, fromMessage, paragraphId,
         text, title, params, config);
 
-    persistAndExecuteSingleParagraph(conn, note, p);
+    persistAndExecuteSingleParagraph(conn, note, p, false);
   }
 
   private void addNewParagraphIfLastParagraphIsExecuted(Note note, Paragraph 
p) {
@@ -1802,15 +1805,16 @@ public class NotebookServer extends WebSocketServlet
     }
   }
 
-  private void persistAndExecuteSingleParagraph(NotebookSocket conn,
-                                                Note note, Paragraph p) throws 
IOException {
+  private boolean persistAndExecuteSingleParagraph(NotebookSocket conn,
+                                                Note note, Paragraph p,
+                                                boolean blocking) throws 
IOException {
     addNewParagraphIfLastParagraphIsExecuted(note, p);
     if (!persistNoteWithAuthInfo(conn, note, p)) {
-      return;
+      return false;
     }
 
     try {
-      note.run(p.getId());
+      return note.run(p.getId(), blocking);
     } catch (Exception ex) {
       LOG.error("Exception from run", ex);
       if (p != null) {
@@ -1818,6 +1822,7 @@ public class NotebookServer extends WebSocketServlet
         p.setStatus(Status.ERROR);
         broadcast(note.getId(), new Message(OP.PARAGRAPH).put("paragraph", p));
       }
+      return false;
     }
   }
 

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/abc197c2/zeppelin-server/src/test/java/org/apache/zeppelin/rest/AbstractTestRestApi.java
----------------------------------------------------------------------
diff --git 
a/zeppelin-server/src/test/java/org/apache/zeppelin/rest/AbstractTestRestApi.java
 
b/zeppelin-server/src/test/java/org/apache/zeppelin/rest/AbstractTestRestApi.java
index 7675cf6..431e364 100644
--- 
a/zeppelin-server/src/test/java/org/apache/zeppelin/rest/AbstractTestRestApi.java
+++ 
b/zeppelin-server/src/test/java/org/apache/zeppelin/rest/AbstractTestRestApi.java
@@ -90,6 +90,9 @@ public abstract class AbstractTestRestApi {
       "/api/version = anon\n" +
       "/** = authc";
 
+  protected static File zeppelinHome;
+  protected static File confDir;
+
   private String getUrl(String path) {
     String url;
     if (System.getProperty("url") != null) {
@@ -124,10 +127,17 @@ public abstract class AbstractTestRestApi {
     }
   };
 
-  private static void start(boolean withAuth) throws Exception {
+  private static void start(boolean withAuth, String testClassName) throws 
Exception {
     if (!wasRunning) {
-      
System.setProperty(ZeppelinConfiguration.ConfVars.ZEPPELIN_HOME.getVarName(), 
new File("../").getAbsolutePath());
+      // copy the resources files to a temp folder
+      zeppelinHome = new File("..");
+      LOG.info("ZEPPELIN_HOME: " + zeppelinHome.getAbsolutePath());
+      confDir = new File(zeppelinHome, "conf_" + testClassName);
+      confDir.mkdirs();
+
+      
System.setProperty(ZeppelinConfiguration.ConfVars.ZEPPELIN_HOME.getVarName(), 
zeppelinHome.getAbsolutePath());
       
System.setProperty(ZeppelinConfiguration.ConfVars.ZEPPELIN_WAR.getVarName(), 
new File("../zeppelin-web/dist").getAbsolutePath());
+      
System.setProperty(ZeppelinConfiguration.ConfVars.ZEPPELIN_CONF_DIR.getVarName(),
 confDir.getAbsolutePath());
 
       // some test profile does not build zeppelin-web.
       // to prevent zeppelin starting up fail, create zeppelin-web/dist 
directory
@@ -142,7 +152,7 @@ public abstract class AbstractTestRestApi {
         
System.setProperty(ZeppelinConfiguration.ConfVars.ZEPPELIN_ANONYMOUS_ALLOWED.getVarName(),
 "false");
         
         // Create a shiro env test.
-        shiroIni = new File("../conf/shiro.ini");
+        shiroIni = new File(confDir, "shiro.ini");
         if (!shiroIni.exists()) {
           shiroIni.createNewFile();
         }
@@ -245,12 +255,12 @@ public abstract class AbstractTestRestApi {
     }
   }
   
-  protected static void startUpWithAuthenticationEnable() throws Exception {
-    start(true);
+  protected static void startUpWithAuthenticationEnable(String testClassName) 
throws Exception {
+    start(true, testClassName);
   }
   
-  protected static void startUp() throws Exception {
-    start(false);
+  protected static void startUp(String testClassName) throws Exception {
+    start(false, testClassName);
   }
 
   private static String getHostname() {
@@ -339,6 +349,8 @@ public abstract class AbstractTestRestApi {
         System
             
.clearProperty(ZeppelinConfiguration.ConfVars.ZEPPELIN_ANONYMOUS_ALLOWED.getVarName());
       }
+
+      FileUtils.deleteDirectory(confDir);
     }
   }
 

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/abc197c2/zeppelin-server/src/test/java/org/apache/zeppelin/rest/ConfigurationsRestApiTest.java
----------------------------------------------------------------------
diff --git 
a/zeppelin-server/src/test/java/org/apache/zeppelin/rest/ConfigurationsRestApiTest.java
 
b/zeppelin-server/src/test/java/org/apache/zeppelin/rest/ConfigurationsRestApiTest.java
index 1c1ebac..f85d519 100644
--- 
a/zeppelin-server/src/test/java/org/apache/zeppelin/rest/ConfigurationsRestApiTest.java
+++ 
b/zeppelin-server/src/test/java/org/apache/zeppelin/rest/ConfigurationsRestApiTest.java
@@ -36,7 +36,7 @@ public class ConfigurationsRestApiTest extends 
AbstractTestRestApi {
 
   @BeforeClass
   public static void init() throws Exception {
-    AbstractTestRestApi.startUp();
+    AbstractTestRestApi.startUp(ConfigurationsRestApi.class.getSimpleName());
   }
 
   @AfterClass

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/abc197c2/zeppelin-server/src/test/java/org/apache/zeppelin/rest/CredentialsRestApiTest.java
----------------------------------------------------------------------
diff --git 
a/zeppelin-server/src/test/java/org/apache/zeppelin/rest/CredentialsRestApiTest.java
 
b/zeppelin-server/src/test/java/org/apache/zeppelin/rest/CredentialsRestApiTest.java
index 29c2914..1737324 100644
--- 
a/zeppelin-server/src/test/java/org/apache/zeppelin/rest/CredentialsRestApiTest.java
+++ 
b/zeppelin-server/src/test/java/org/apache/zeppelin/rest/CredentialsRestApiTest.java
@@ -43,7 +43,7 @@ public class CredentialsRestApiTest extends 
AbstractTestRestApi {
 
   @BeforeClass
   public static void init() throws Exception {
-    AbstractTestRestApi.startUp();
+    AbstractTestRestApi.startUp(CredentialsRestApiTest.class.getSimpleName());
   }
 
   @AfterClass

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/abc197c2/zeppelin-server/src/test/java/org/apache/zeppelin/rest/HeliumRestApiTest.java
----------------------------------------------------------------------
diff --git 
a/zeppelin-server/src/test/java/org/apache/zeppelin/rest/HeliumRestApiTest.java 
b/zeppelin-server/src/test/java/org/apache/zeppelin/rest/HeliumRestApiTest.java
index f63f207..7d29dcb 100644
--- 
a/zeppelin-server/src/test/java/org/apache/zeppelin/rest/HeliumRestApiTest.java
+++ 
b/zeppelin-server/src/test/java/org/apache/zeppelin/rest/HeliumRestApiTest.java
@@ -39,7 +39,7 @@ public class HeliumRestApiTest extends AbstractTestRestApi {
 
     @BeforeClass
     public static void init() throws Exception {
-        AbstractTestRestApi.startUp();
+        AbstractTestRestApi.startUp(HeliumRestApi.class.getSimpleName());
     }
 
     @AfterClass

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/abc197c2/zeppelin-server/src/test/java/org/apache/zeppelin/rest/InterpreterRestApiTest.java
----------------------------------------------------------------------
diff --git 
a/zeppelin-server/src/test/java/org/apache/zeppelin/rest/InterpreterRestApiTest.java
 
b/zeppelin-server/src/test/java/org/apache/zeppelin/rest/InterpreterRestApiTest.java
index 72dd8a7..7de4dc6 100644
--- 
a/zeppelin-server/src/test/java/org/apache/zeppelin/rest/InterpreterRestApiTest.java
+++ 
b/zeppelin-server/src/test/java/org/apache/zeppelin/rest/InterpreterRestApiTest.java
@@ -59,7 +59,7 @@ public class InterpreterRestApiTest extends 
AbstractTestRestApi {
 
   @BeforeClass
   public static void init() throws Exception {
-    AbstractTestRestApi.startUp();
+    AbstractTestRestApi.startUp(InterpreterRestApiTest.class.getSimpleName());
   }
 
   @AfterClass

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/abc197c2/zeppelin-server/src/test/java/org/apache/zeppelin/rest/NotebookRepoRestApiTest.java
----------------------------------------------------------------------
diff --git 
a/zeppelin-server/src/test/java/org/apache/zeppelin/rest/NotebookRepoRestApiTest.java
 
b/zeppelin-server/src/test/java/org/apache/zeppelin/rest/NotebookRepoRestApiTest.java
index 307339d..b852d6e 100644
--- 
a/zeppelin-server/src/test/java/org/apache/zeppelin/rest/NotebookRepoRestApiTest.java
+++ 
b/zeppelin-server/src/test/java/org/apache/zeppelin/rest/NotebookRepoRestApiTest.java
@@ -50,7 +50,7 @@ public class NotebookRepoRestApiTest extends 
AbstractTestRestApi {
 
   @BeforeClass
   public static void init() throws Exception {
-    AbstractTestRestApi.startUp();
+    AbstractTestRestApi.startUp(NotebookRepoRestApiTest.class.getSimpleName());
   }
 
   @AfterClass

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/abc197c2/zeppelin-server/src/test/java/org/apache/zeppelin/rest/NotebookRestApiTest.java
----------------------------------------------------------------------
diff --git 
a/zeppelin-server/src/test/java/org/apache/zeppelin/rest/NotebookRestApiTest.java
 
b/zeppelin-server/src/test/java/org/apache/zeppelin/rest/NotebookRestApiTest.java
index ac8a27f..8f249c3 100644
--- 
a/zeppelin-server/src/test/java/org/apache/zeppelin/rest/NotebookRestApiTest.java
+++ 
b/zeppelin-server/src/test/java/org/apache/zeppelin/rest/NotebookRestApiTest.java
@@ -55,7 +55,7 @@ public class NotebookRestApiTest extends AbstractTestRestApi {
 
   @BeforeClass
   public static void init() throws Exception {
-    AbstractTestRestApi.startUp();
+    startUp(NotebookRestApiTest.class.getSimpleName());
   }
 
   @AfterClass
@@ -121,6 +121,68 @@ public class NotebookRestApiTest extends 
AbstractTestRestApi {
   }
 
   @Test
+  public void testRunAllParagraph_AllSuccess() throws IOException {
+    Note note1 = ZeppelinServer.notebook.createNote(anonymous);
+    // 2 paragraphs
+    // P1:
+    //    %python
+    //    import time
+    //    time.sleep(1)
+    //    user='abc'
+    // P2:
+    //    %python
+    //    from __future__ import print_function
+    //    print(user)
+    //
+    Paragraph p1 = note1.addNewParagraph(AuthenticationInfo.ANONYMOUS);
+    Paragraph p2 = note1.addNewParagraph(AuthenticationInfo.ANONYMOUS);
+    p1.setText("%python import time\ntime.sleep(1)\nuser='abc'");
+    p2.setText("%python from __future__ import print_function\nprint(user)");
+
+    PostMethod post = httpPost("/notebook/job/" + note1.getId(), "");
+    assertThat(post, isAllowed());
+    Map<String, Object> resp = gson.fromJson(post.getResponseBodyAsString(), 
new TypeToken<Map<String, Object>>() {
+    }.getType());
+    assertEquals(resp.get("status"), "OK");
+    post.releaseConnection();
+
+    assertEquals(Job.Status.FINISHED, p1.getStatus());
+    assertEquals(Job.Status.FINISHED, p2.getStatus());
+    assertEquals("abc\n", p2.getResult().message().get(0).getData());
+  }
+
+  @Test
+  public void testRunAllParagraph_FirstFailed() throws IOException {
+    Note note1 = ZeppelinServer.notebook.createNote(anonymous);
+    // 2 paragraphs
+    // P1:
+    //    %python
+    //    import time
+    //    time.sleep(1)
+    //    from __future__ import print_function
+    //    print(user)
+    // P2:
+    //    %python
+    //    user='abc'
+    //
+    Paragraph p1 = note1.addNewParagraph(AuthenticationInfo.ANONYMOUS);
+    Paragraph p2 = note1.addNewParagraph(AuthenticationInfo.ANONYMOUS);
+    p1.setText("%python import time\ntime.sleep(1)\nfrom __future__ import 
print_function\nprint(user2)");
+    p2.setText("%python user2='abc'\nprint(user2)");
+
+    PostMethod post = httpPost("/notebook/job/" + note1.getId(), "");
+    assertThat(post, isAllowed());
+    Map<String, Object> resp = gson.fromJson(post.getResponseBodyAsString(), 
new TypeToken<Map<String, Object>>() {
+    }.getType());
+    assertEquals(resp.get("status"), "OK");
+    post.releaseConnection();
+
+    assertEquals(Job.Status.ERROR, p1.getStatus());
+    // p2 will be skipped because p1 is failed.
+    assertEquals(Job.Status.READY, p2.getStatus());
+  }
+
+  @Test
   public void testCloneNote() throws IOException {
     Note note1 = ZeppelinServer.notebook.createNote(anonymous);
     PostMethod post = httpPost("/notebook/" + note1.getId(), "");

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/abc197c2/zeppelin-server/src/test/java/org/apache/zeppelin/rest/NotebookSecurityRestApiTest.java
----------------------------------------------------------------------
diff --git 
a/zeppelin-server/src/test/java/org/apache/zeppelin/rest/NotebookSecurityRestApiTest.java
 
b/zeppelin-server/src/test/java/org/apache/zeppelin/rest/NotebookSecurityRestApiTest.java
index c3b0977..808cfd8 100644
--- 
a/zeppelin-server/src/test/java/org/apache/zeppelin/rest/NotebookSecurityRestApiTest.java
+++ 
b/zeppelin-server/src/test/java/org/apache/zeppelin/rest/NotebookSecurityRestApiTest.java
@@ -46,7 +46,7 @@ public class NotebookSecurityRestApiTest extends 
AbstractTestRestApi {
 
   @BeforeClass
   public static void init() throws Exception {
-    AbstractTestRestApi.startUpWithAuthenticationEnable();
+    
AbstractTestRestApi.startUpWithAuthenticationEnable(NotebookSecurityRestApiTest.class.getSimpleName());
   }
 
   @AfterClass

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/abc197c2/zeppelin-server/src/test/java/org/apache/zeppelin/rest/SecurityRestApiTest.java
----------------------------------------------------------------------
diff --git 
a/zeppelin-server/src/test/java/org/apache/zeppelin/rest/SecurityRestApiTest.java
 
b/zeppelin-server/src/test/java/org/apache/zeppelin/rest/SecurityRestApiTest.java
index bc38f74..9df2e7f 100644
--- 
a/zeppelin-server/src/test/java/org/apache/zeppelin/rest/SecurityRestApiTest.java
+++ 
b/zeppelin-server/src/test/java/org/apache/zeppelin/rest/SecurityRestApiTest.java
@@ -40,7 +40,7 @@ public class SecurityRestApiTest extends AbstractTestRestApi {
 
   @BeforeClass
   public static void init() throws Exception {
-    AbstractTestRestApi.startUpWithAuthenticationEnable();
+    
AbstractTestRestApi.startUpWithAuthenticationEnable(SecurityRestApiTest.class.getSimpleName());
   }
 
   @AfterClass

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/abc197c2/zeppelin-server/src/test/java/org/apache/zeppelin/rest/ZeppelinRestApiTest.java
----------------------------------------------------------------------
diff --git 
a/zeppelin-server/src/test/java/org/apache/zeppelin/rest/ZeppelinRestApiTest.java
 
b/zeppelin-server/src/test/java/org/apache/zeppelin/rest/ZeppelinRestApiTest.java
index 2a64665..7e1a28a 100644
--- 
a/zeppelin-server/src/test/java/org/apache/zeppelin/rest/ZeppelinRestApiTest.java
+++ 
b/zeppelin-server/src/test/java/org/apache/zeppelin/rest/ZeppelinRestApiTest.java
@@ -56,7 +56,7 @@ public class ZeppelinRestApiTest extends AbstractTestRestApi {
 
   @BeforeClass
   public static void init() throws Exception {
-    AbstractTestRestApi.startUp();
+    AbstractTestRestApi.startUp(ZeppelinRestApiTest.class.getSimpleName());
   }
 
   @AfterClass
@@ -441,12 +441,6 @@ public class ZeppelinRestApiTest extends 
AbstractTestRestApi {
     String noteId = note.getId();
 
     note.runAll();
-
-    // wait until paragraph gets started
-    while (!paragraph.getStatus().isRunning()) {
-      Thread.sleep(100);
-    }
-
     // assume that status of the paragraph is running
     GetMethod get = httpGet("/notebook/job/" + noteId);
     assertThat("test get note job: ", get, isAllowed());
@@ -494,15 +488,6 @@ public class ZeppelinRestApiTest extends 
AbstractTestRestApi {
     String noteId = note.getId();
 
     note.runAll();
-    // wait until job is finished or timeout.
-    int timeout = 1;
-    while (!paragraph.isTerminated()) {
-      Thread.sleep(1000);
-      if (timeout++ > 120) {
-        LOG.info("testRunParagraphWithParams timeout job.");
-        break;
-      }
-    }
 
     // Call Run paragraph REST API
     PostMethod postParagraph = httpPost("/notebook/job/" + noteId + "/" + 
paragraph.getId(),
@@ -534,17 +519,8 @@ public class ZeppelinRestApiTest extends 
AbstractTestRestApi {
     config.put("enabled", true);
     paragraph.setConfig(config);
 
-    note.runAll();
-    // wait until job is finished or timeout.
-    int timeout = 1;
-    while (!paragraph.isTerminated()) {
-      Thread.sleep(1000);
-      if (timeout++ > 10) {
-        LOG.info("testNoteJobs timeout job.");
-        break;
-      }
-    }
-    
+    note.runAll(AuthenticationInfo.ANONYMOUS, false);
+
     String jsonRequest = "{\"cron\":\"* * * * * ?\" }";
     // right cron expression but not exist note.
     PostMethod postCron = httpPost("/notebook/cron/notexistnote", jsonRequest);

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/abc197c2/zeppelin-server/src/test/java/org/apache/zeppelin/rest/ZeppelinServerTest.java
----------------------------------------------------------------------
diff --git 
a/zeppelin-server/src/test/java/org/apache/zeppelin/rest/ZeppelinServerTest.java
 
b/zeppelin-server/src/test/java/org/apache/zeppelin/rest/ZeppelinServerTest.java
new file mode 100644
index 0000000..76a0758
--- /dev/null
+++ 
b/zeppelin-server/src/test/java/org/apache/zeppelin/rest/ZeppelinServerTest.java
@@ -0,0 +1,23 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.zeppelin.rest;
+
+public class ZeppelinServerTest extends AbstractTestRestApi {
+
+
+}

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/abc197c2/zeppelin-server/src/test/java/org/apache/zeppelin/rest/ZeppelinSparkClusterTest.java
----------------------------------------------------------------------
diff --git 
a/zeppelin-server/src/test/java/org/apache/zeppelin/rest/ZeppelinSparkClusterTest.java
 
b/zeppelin-server/src/test/java/org/apache/zeppelin/rest/ZeppelinSparkClusterTest.java
index 2fa584b..56056d6 100644
--- 
a/zeppelin-server/src/test/java/org/apache/zeppelin/rest/ZeppelinSparkClusterTest.java
+++ 
b/zeppelin-server/src/test/java/org/apache/zeppelin/rest/ZeppelinSparkClusterTest.java
@@ -49,7 +49,7 @@ public class ZeppelinSparkClusterTest extends 
AbstractTestRestApi {
 
     @BeforeClass
     public static void init() throws Exception {
-        AbstractTestRestApi.startUp();
+        
AbstractTestRestApi.startUp(ZeppelinSparkClusterTest.class.getSimpleName());
     }
 
     @AfterClass

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/abc197c2/zeppelin-server/src/test/java/org/apache/zeppelin/security/DirAccessTest.java
----------------------------------------------------------------------
diff --git 
a/zeppelin-server/src/test/java/org/apache/zeppelin/security/DirAccessTest.java 
b/zeppelin-server/src/test/java/org/apache/zeppelin/security/DirAccessTest.java
index 2f2486b..b8d5b20 100644
--- 
a/zeppelin-server/src/test/java/org/apache/zeppelin/security/DirAccessTest.java
+++ 
b/zeppelin-server/src/test/java/org/apache/zeppelin/security/DirAccessTest.java
@@ -30,7 +30,7 @@ public class DirAccessTest extends AbstractTestRestApi {
   public void testDirAccessForbidden() throws Exception {
     synchronized (this) {
       
System.setProperty(ZeppelinConfiguration.ConfVars.ZEPPELIN_SERVER_DEFAULT_DIR_ALLOWED.getVarName(),
 "false");
-      AbstractTestRestApi.startUp();
+      AbstractTestRestApi.startUp(DirAccessTest.class.getSimpleName());
       HttpClient httpClient = new HttpClient();
       GetMethod getMethod = new GetMethod(getUrlToTest() + "/app/");
       httpClient.executeMethod(getMethod);
@@ -43,7 +43,7 @@ public class DirAccessTest extends AbstractTestRestApi {
   public void testDirAccessOk() throws Exception {
     synchronized (this) {
       
System.setProperty(ZeppelinConfiguration.ConfVars.ZEPPELIN_SERVER_DEFAULT_DIR_ALLOWED.getVarName(),
 "true");
-      AbstractTestRestApi.startUp();
+      AbstractTestRestApi.startUp(DirAccessTest.class.getSimpleName());
       HttpClient httpClient = new HttpClient();
       GetMethod getMethod = new GetMethod(getUrlToTest() + "/app/");
       httpClient.executeMethod(getMethod);

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/abc197c2/zeppelin-server/src/test/java/org/apache/zeppelin/socket/NotebookServerTest.java
----------------------------------------------------------------------
diff --git 
a/zeppelin-server/src/test/java/org/apache/zeppelin/socket/NotebookServerTest.java
 
b/zeppelin-server/src/test/java/org/apache/zeppelin/socket/NotebookServerTest.java
index 10d77b2..573ee56 100644
--- 
a/zeppelin-server/src/test/java/org/apache/zeppelin/socket/NotebookServerTest.java
+++ 
b/zeppelin-server/src/test/java/org/apache/zeppelin/socket/NotebookServerTest.java
@@ -63,7 +63,7 @@ public class NotebookServerTest extends AbstractTestRestApi {
 
   @BeforeClass
   public static void init() throws Exception {
-    AbstractTestRestApi.startUp();
+    AbstractTestRestApi.startUp(NotebookServerTest.class.getSimpleName());
     gson = new Gson();
     notebook = ZeppelinServer.notebook;
     notebookServer = ZeppelinServer.notebookWsServer;

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/abc197c2/zeppelin-zengine/src/main/java/org/apache/zeppelin/interpreter/InterpreterSettingManager.java
----------------------------------------------------------------------
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 f27f83d..fb86954 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
@@ -803,7 +803,7 @@ public class InterpreterSettingManager {
   }
 
   public void restart(String id) throws InterpreterException {
-    restart(id, "", "anonymous");
+    interpreterSettings.get(id).close();
   }
 
   public InterpreterSetting get(String id) {

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/abc197c2/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 c89eee5..5124f5d 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
@@ -592,32 +592,39 @@ public class Note implements ParagraphJobListener, 
JsonSerializable {
     }
     AuthenticationInfo authenticationInfo = new AuthenticationInfo();
     authenticationInfo.setUser(cronExecutingUser);
-    runAll(authenticationInfo);
+    runAll(authenticationInfo, true);
   }
 
-  public void runAll(AuthenticationInfo authenticationInfo) {
+  public void runAll(AuthenticationInfo authenticationInfo, boolean blocking) {
     for (Paragraph p : getParagraphs()) {
       if (!p.isEnabled()) {
         continue;
       }
       p.setAuthenticationInfo(authenticationInfo);
-      run(p.getId());
+      if (!run(p.getId(), blocking)) {
+        logger.warn("Skip running the remain notes because paragraph {} 
fails", p.getId());
+        break;
+      }
     }
   }
 
+  public boolean run(String paragraphId) {
+    return run(paragraphId, false);
+  }
+
   /**
    * Run a single paragraph.
    *
    * @param paragraphId ID of paragraph
    */
-  public void run(String paragraphId) {
+  public boolean run(String paragraphId, boolean blocking) {
     Paragraph p = getParagraph(paragraphId);
     p.setListener(jobListenerFactory.getParagraphJobListener(this));
     
     if (p.isBlankParagraph()) {
       logger.info("skip to run blank paragraph. {}", p.getId());
       p.setStatus(Job.Status.FINISHED);
-      return;
+      return true;
     }
 
     p.clearRuntimeInfo(null);
@@ -638,6 +645,19 @@ public class Note implements ParagraphJobListener, 
JsonSerializable {
       p.setAuthenticationInfo(p.getAuthenticationInfo());
       intp.getScheduler().submit(p);
     }
+
+    if (blocking) {
+      while (!p.getStatus().isCompleted()) {
+        try {
+          Thread.sleep(100);
+        } catch (InterruptedException e) {
+          throw new RuntimeException(e);
+        }
+      }
+      return p.getStatus() == Status.FINISHED;
+    } else {
+      return true;
+    }
   }
 
   /**

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/abc197c2/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/Paragraph.java
----------------------------------------------------------------------
diff --git 
a/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/Paragraph.java 
b/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/Paragraph.java
index 701943a..eaef494 100644
--- a/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/Paragraph.java
+++ b/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/Paragraph.java
@@ -646,7 +646,7 @@ public class Paragraph extends Job implements Cloneable, 
JsonSerializable {
 
     @Override
     public void run() {
-      note.run(getParagraphId());
+      note.run(getParagraphId(), false);
     }
   }
 

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/abc197c2/zeppelin-zengine/src/test/java/org/apache/zeppelin/interpreter/AbstractInterpreterTest.java
----------------------------------------------------------------------
diff --git 
a/zeppelin-zengine/src/test/java/org/apache/zeppelin/interpreter/AbstractInterpreterTest.java
 
b/zeppelin-zengine/src/test/java/org/apache/zeppelin/interpreter/AbstractInterpreterTest.java
index 6ba8a49..5438e93 100644
--- 
a/zeppelin-zengine/src/test/java/org/apache/zeppelin/interpreter/AbstractInterpreterTest.java
+++ 
b/zeppelin-zengine/src/test/java/org/apache/zeppelin/interpreter/AbstractInterpreterTest.java
@@ -54,8 +54,9 @@ public abstract class AbstractInterpreterTest {
     
System.setProperty(ZeppelinConfiguration.ConfVars.ZEPPELIN_CONF_DIR.getVarName(),
 confDir.getAbsolutePath());
     
System.setProperty(ZeppelinConfiguration.ConfVars.ZEPPELIN_INTERPRETER_DIR.getVarName(),
 interpreterDir.getAbsolutePath());
     
System.setProperty(ZeppelinConfiguration.ConfVars.ZEPPELIN_NOTEBOOK_DIR.getVarName(),
 notebookDir.getAbsolutePath());
+    
System.setProperty(ZeppelinConfiguration.ConfVars.ZEPPELIN_INTERPRETER_GROUP_ORDER.getVarName(),
 "test,mock1,mock2,mock_resource_pool");
 
-    
conf.setProperty(ZeppelinConfiguration.ConfVars.ZEPPELIN_INTERPRETER_GROUP_ORDER.getVarName(),
 "test,mock1,mock2,mock_resource_pool");
+    conf = new ZeppelinConfiguration();
     interpreterSettingManager = new InterpreterSettingManager(conf,
         mock(AngularObjectRegistryListener.class), 
mock(RemoteInterpreterProcessListener.class), 
mock(ApplicationEventListener.class));
     interpreterFactory = new InterpreterFactory(interpreterSettingManager);

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/abc197c2/zeppelin-zengine/src/test/java/org/apache/zeppelin/interpreter/InterpreterFactoryTest.java
----------------------------------------------------------------------
diff --git 
a/zeppelin-zengine/src/test/java/org/apache/zeppelin/interpreter/InterpreterFactoryTest.java
 
b/zeppelin-zengine/src/test/java/org/apache/zeppelin/interpreter/InterpreterFactoryTest.java
index abbaa35..8f82044 100644
--- 
a/zeppelin-zengine/src/test/java/org/apache/zeppelin/interpreter/InterpreterFactoryTest.java
+++ 
b/zeppelin-zengine/src/test/java/org/apache/zeppelin/interpreter/InterpreterFactoryTest.java
@@ -17,6 +17,7 @@
 
 package org.apache.zeppelin.interpreter;
 
+import org.apache.zeppelin.interpreter.mock.MockInterpreter1;
 import org.apache.zeppelin.interpreter.remote.RemoteInterpreter;
 import org.junit.Test;
 
@@ -36,19 +37,19 @@ public class InterpreterFactoryTest extends 
AbstractInterpreterTest {
     interpreterSettingManager.setInterpreterBinding("user1", "note1", 
interpreterSettingManager.getSettingIds());
     assertTrue(interpreterFactory.getInterpreter("user1", "note1", "") 
instanceof RemoteInterpreter);
     RemoteInterpreter remoteInterpreter = (RemoteInterpreter) 
interpreterFactory.getInterpreter("user1", "note1", "");
-    // EchoInterpreter is the default interpreter (see 
zeppelin-interpreter/src/test/resources/conf/interpreter.json)
+    // EchoInterpreter is the default interpreter because mock1 is the default 
interpreter group
     assertEquals(EchoInterpreter.class.getName(), 
remoteInterpreter.getClassName());
 
     assertTrue(interpreterFactory.getInterpreter("user1", "note1", "test") 
instanceof RemoteInterpreter);
     remoteInterpreter = (RemoteInterpreter) 
interpreterFactory.getInterpreter("user1", "note1", "test");
     assertEquals(EchoInterpreter.class.getName(), 
remoteInterpreter.getClassName());
 
-    assertTrue(interpreterFactory.getInterpreter("user1", "note1", "echo") 
instanceof RemoteInterpreter);
-    remoteInterpreter = (RemoteInterpreter) 
interpreterFactory.getInterpreter("user1", "note1", "echo");
+    assertTrue(interpreterFactory.getInterpreter("user1", "note1", "test2") 
instanceof RemoteInterpreter);
+    remoteInterpreter = (RemoteInterpreter) 
interpreterFactory.getInterpreter("user1", "note1", "test2");
     assertEquals(EchoInterpreter.class.getName(), 
remoteInterpreter.getClassName());
 
-    assertTrue(interpreterFactory.getInterpreter("user1", "note1", 
"double_echo") instanceof RemoteInterpreter);
-    remoteInterpreter = (RemoteInterpreter) 
interpreterFactory.getInterpreter("user1", "note1", "double_echo");
+    assertTrue(interpreterFactory.getInterpreter("user1", "note1", 
"test2.double_echo") instanceof RemoteInterpreter);
+    remoteInterpreter = (RemoteInterpreter) 
interpreterFactory.getInterpreter("user1", "note1", "test2.double_echo");
     assertEquals(DoubleEchoInterpreter.class.getName(), 
remoteInterpreter.getClassName());
   }
 

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/abc197c2/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 a1621e8..af5971a 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
@@ -114,7 +114,7 @@ public class NotebookTest extends AbstractInterpreterTest 
implements JobListener
     Map config = p1.getConfig();
     config.put("enabled", true);
     p1.setConfig(config);
-    p1.setText("hello world");
+    p1.setText("%mock1 hello world");
     p1.setAuthenticationInfo(anonymous);
     note.run(p1.getId());
     while(p1.isTerminated()==false || p1.getResult()==null) Thread.yield();
@@ -268,7 +268,7 @@ public class NotebookTest extends AbstractInterpreterTest 
implements JobListener
     Map config = p1.getConfig();
     config.put("enabled", true);
     p1.setConfig(config);
-    p1.setText("hello world");
+    p1.setText("%mock1 hello world");
     p1.setAuthenticationInfo(anonymous);
     note.run(p1.getId());
 
@@ -305,27 +305,22 @@ public class NotebookTest extends AbstractInterpreterTest 
implements JobListener
     Map config1 = p1.getConfig();
     config1.put("enabled", true);
     p1.setConfig(config1);
-    p1.setText("p1");
+    p1.setText("%mock1 p1");
 
     // p2
     Paragraph p2 = note.addNewParagraph(AuthenticationInfo.ANONYMOUS);
     Map config2 = p2.getConfig();
     config2.put("enabled", false);
     p2.setConfig(config2);
-    p2.setText("p2");
+    p2.setText("%mock1 p2");
 
     // p3
     Paragraph p3 = note.addNewParagraph(AuthenticationInfo.ANONYMOUS);
-    p3.setText("p3");
+    p3.setText("%mock1 p3");
 
     // when
     note.runAll();
 
-    // wait for finish
-    while(p3.isTerminated() == false || p3.getResult() == null) {
-      Thread.yield();
-    }
-
     assertEquals("repl1: p1", p1.getResult().message().get(0).getData());
     assertNull(p2.getResult());
     assertEquals("repl1: p3", p3.getResult().message().get(0).getData());
@@ -415,7 +410,7 @@ public class NotebookTest extends AbstractInterpreterTest 
implements JobListener
     Paragraph p = note.addNewParagraph(AuthenticationInfo.ANONYMOUS);
     Map config = new HashMap<>();
     p.setConfig(config);
-    p.setText("sleep 1000");
+    p.setText("%mock1 sleep 1000");
 
     Paragraph p2 = note.addNewParagraph(AuthenticationInfo.ANONYMOUS);
     p2.setConfig(config);
@@ -466,9 +461,6 @@ public class NotebookTest extends AbstractInterpreterTest 
implements JobListener
     p.setText(simpleText);
 
     note.runAll();
-    while (p.isTerminated() == false || p.getResult() == null) {
-      Thread.yield();
-    }
 
     String exportedNoteJson = notebook.exportNote(note.getId());
 
@@ -503,7 +495,6 @@ public class NotebookTest extends AbstractInterpreterTest 
implements JobListener
     final Paragraph p = note.addNewParagraph(AuthenticationInfo.ANONYMOUS);
     p.setText("hello world");
     note.runAll();
-    while(p.isTerminated()==false || p.getResult()==null) Thread.yield();
 
     p.setStatus(Status.RUNNING);
     Note cloneNote = notebook.cloneNote(note.getId(), "clone note", anonymous);
@@ -549,9 +540,7 @@ public class NotebookTest extends AbstractInterpreterTest 
implements JobListener
     final Paragraph p = note.addNewParagraph(AuthenticationInfo.ANONYMOUS);
     p.setText("hello world");
     note.runAll();
-    while (p.isTerminated() == false || p.getResult() == null) {
-      Thread.yield();
-    }
+
     // Force paragraph to have String type object
     p.setResult("Exception");
 
@@ -572,15 +561,13 @@ public class NotebookTest extends AbstractInterpreterTest 
implements JobListener
     interpreterSettingManager.setInterpreterBinding(anonymous.getUser(), 
note.getId(), interpreterSettingManager.getInterpreterSettingIds());
 
     Paragraph p1 = note.addNewParagraph(AuthenticationInfo.ANONYMOUS);
-    p1.setText("hello");
+    p1.setText("%mock1 hello");
     Paragraph p2 = note.addNewParagraph(AuthenticationInfo.ANONYMOUS);
     p2.setText("%mock2 world");
     for (InterpreterGroup intpGroup : 
interpreterSettingManager.getAllInterpreterGroup()) {
       intpGroup.setResourcePool(new LocalResourcePool(intpGroup.getId()));
     }
     note.runAll();
-    while (p1.isTerminated() == false || p1.getResult() == null) 
Thread.yield();
-    while (p2.isTerminated() == false || p2.getResult() == null) 
Thread.yield();
 
     assertEquals(2, interpreterSettingManager.getAllResources().size());
 
@@ -796,14 +783,14 @@ public class NotebookTest extends AbstractInterpreterTest 
implements JobListener
 
     // create three paragraphs
     Paragraph p1 = note.addNewParagraph(anonymous);
-    p1.setText("sleep 1000");
+    p1.setText("%mock1 sleep 1000");
     Paragraph p2 = note.addNewParagraph(anonymous);
-    p2.setText("sleep 1000");
+    p2.setText("%mock1 sleep 1000");
     Paragraph p3 = note.addNewParagraph(anonymous);
-    p3.setText("sleep 1000");
+    p3.setText("%mock1 sleep 1000");
 
 
-    note.runAll();
+    note.runAll(AuthenticationInfo.ANONYMOUS, false);
 
     // wait until first paragraph finishes and second paragraph starts
     while (p1.getStatus() != Status.FINISHED || p2.getStatus() != 
Status.RUNNING) Thread.yield();
@@ -813,9 +800,9 @@ public class NotebookTest extends AbstractInterpreterTest 
implements JobListener
     assertEquals(Status.PENDING, p3.getStatus());
 
     // restart interpreter
-    
interpreterSettingManager.restart(interpreterSettingManager.getInterpreterSettings(note.getId()).get(0).getId());
+    
interpreterSettingManager.restart(interpreterSettingManager.getInterpreterSettingByName("mock1").getId());
 
-    // make sure three differnt status aborted well.
+    // make sure three different status aborted well.
     assertEquals(Status.FINISHED, p1.getStatus());
     assertEquals(Status.ABORT, p2.getStatus());
     assertEquals(Status.ABORT, p3.getStatus());
@@ -828,7 +815,7 @@ public class NotebookTest extends AbstractInterpreterTest 
implements JobListener
     // create a notes
     Note note1  = notebook.createNote(anonymous);
     Paragraph p1 = note1.addNewParagraph(AuthenticationInfo.ANONYMOUS);
-    p1.setText("getId");
+    p1.setText("%mock1 getId");
     p1.setAuthenticationInfo(anonymous);
 
     // restart interpreter with per user session enabled
@@ -845,7 +832,7 @@ public class NotebookTest extends AbstractInterpreterTest 
implements JobListener
     notebook.removeNote(note1.getId(), anonymous);
     note1 = notebook.createNote(anonymous);
     p1 = note1.addNewParagraph(AuthenticationInfo.ANONYMOUS);
-    p1.setText("getId");
+    p1.setText("%mock1 getId");
     p1.setAuthenticationInfo(anonymous);
 
     note1.run(p1.getId());
@@ -864,9 +851,9 @@ public class NotebookTest extends AbstractInterpreterTest 
implements JobListener
     Note note2  = notebook.createNote(anonymous);
     Paragraph p2 = note2.addNewParagraph(AuthenticationInfo.ANONYMOUS);
 
-    p1.setText("getId");
+    p1.setText("%mock1 getId");
     p1.setAuthenticationInfo(anonymous);
-    p2.setText("getId");
+    p2.setText("%mock1 getId");
     p2.setAuthenticationInfo(anonymous);
 
     // run per note session disabled
@@ -908,9 +895,9 @@ public class NotebookTest extends AbstractInterpreterTest 
implements JobListener
     Note note2  = notebook.createNote(anonymous);
     Paragraph p2 = note2.addNewParagraph(AuthenticationInfo.ANONYMOUS);
 
-    p1.setText("getId");
+    p1.setText("%mock1 getId");
     p1.setAuthenticationInfo(anonymous);
-    p2.setText("getId");
+    p2.setText("%mock1 getId");
     p2.setAuthenticationInfo(anonymous);
 
     // shared mode.
@@ -925,8 +912,7 @@ public class NotebookTest extends AbstractInterpreterTest 
implements JobListener
     // restart interpreter with scoped mode enabled
     for (InterpreterSetting setting : 
notebook.getInterpreterSettingManager().getInterpreterSettings(note1.getId())) {
       setting.getOption().setPerNote(InterpreterOption.SCOPED);
-      notebook.getInterpreterSettingManager().restart(setting.getId(), 
note1.getId(), anonymous.getUser());
-      notebook.getInterpreterSettingManager().restart(setting.getId(), 
note2.getId(), anonymous.getUser());
+      notebook.getInterpreterSettingManager().restart(setting.getId());
     }
 
     // run per note session enabled
@@ -941,8 +927,7 @@ public class NotebookTest extends AbstractInterpreterTest 
implements JobListener
     // restart interpreter with isolated mode enabled
     for (InterpreterSetting setting : 
notebook.getInterpreterSettingManager().getInterpreterSettings(note1.getId())) {
       setting.getOption().setPerNote(InterpreterOption.ISOLATED);
-      notebook.getInterpreterSettingManager().restart(setting.getId(), 
note1.getId(), anonymous.getUser());
-      notebook.getInterpreterSettingManager().restart(setting.getId(), 
note2.getId(), anonymous.getUser());
+      setting.getInterpreterSettingManager().restart(setting.getId());
     }
 
     // run per note process enabled
@@ -964,7 +949,7 @@ public class NotebookTest extends AbstractInterpreterTest 
implements JobListener
     Note note1  = notebook.createNote(anonymous);
     Paragraph p1 = note1.addNewParagraph(AuthenticationInfo.ANONYMOUS);
     p1.setAuthenticationInfo(anonymous);
-    p1.setText("getId");
+    p1.setText("%mock1 getId");
 
     // restart interpreter with per note session enabled
     for (InterpreterSetting setting : 
interpreterSettingManager.getInterpreterSettings(note1.getId())) {

Reply via email to