From 524c4017bab20a79859d6b36ace5a7debb253537 Mon Sep 17 00:00:00 2001 From: Alexander Bezzubov Date: Sat, 19 Dec 2015 13:13:44 +0900 Subject: [PATCH 1/3] ZEPPELIN-312: refactoring ZeppelinServer to adhere Java naming conventions --- .../zeppelin/server/ZeppelinServer.java | 70 ++++++++----------- .../zeppelin/socket/NotebookServer.java | 8 +-- .../zeppelin/rest/AbstractTestRestApi.java | 16 ++--- .../zeppelin/rest/ZeppelinRestApiTest.java | 42 +++++------ .../rest/ZeppelinSparkClusterTest.java | 22 +++--- .../zeppelin/socket/NotebookServerTest.java | 4 +- 6 files changed, 76 insertions(+), 86 deletions(-) diff --git a/zeppelin-server/src/main/java/org/apache/zeppelin/server/ZeppelinServer.java b/zeppelin-server/src/main/java/org/apache/zeppelin/server/ZeppelinServer.java index e0e4a5d1f9f..5f700a54484 100644 --- a/zeppelin-server/src/main/java/org/apache/zeppelin/server/ZeppelinServer.java +++ b/zeppelin-server/src/main/java/org/apache/zeppelin/server/ZeppelinServer.java @@ -63,37 +63,37 @@ public class ZeppelinServer extends Application { private static final Logger LOG = LoggerFactory.getLogger(ZeppelinServer.class); - private SchedulerFactory schedulerFactory; - public static Notebook notebook; - public static NotebookServer notebookServer; - public static Server jettyServer; + public static Notebook NOTEBOOK; + public static NotebookServer NOTEBOOK_SERVER; + public static Server JETTY_SERVER; + private SchedulerFactory schedulerFactory; private InterpreterFactory replFactory; private NotebookRepo notebookRepo; - public static void main(String[] args) throws Exception { + public static void main(String[] args) throws InterruptedException { ZeppelinConfiguration conf = ZeppelinConfiguration.create(); conf.setProperty("args", args); - jettyServer = setupJettyServer(conf); + JETTY_SERVER = setupJettyServer(conf); // REST api - final ServletContextHandler restApi = setupRestApiContextHandler(conf); + final ServletContextHandler restApiContext = setupRestApiContextHandler(conf); // Notebook server - final ServletContextHandler notebook = setupNotebookServer(conf); + final ServletContextHandler notebookContext = setupNotebookServer(conf); // Web UI final WebAppContext webApp = setupWebAppContext(conf); // add all handlers ContextHandlerCollection contexts = new ContextHandlerCollection(); - contexts.setHandlers(new Handler[]{restApi, notebook, webApp}); - jettyServer.setHandler(contexts); + contexts.setHandlers(new Handler[]{restApiContext, notebookContext, webApp}); + JETTY_SERVER.setHandler(contexts); LOG.info("Start zeppelin server"); try { - jettyServer.start(); + JETTY_SERVER.start(); } catch (Exception e) { LOG.error("Error while running jettyServer", e); System.exit(-1); @@ -104,9 +104,9 @@ public static void main(String[] args) throws Exception { @Override public void run() { LOG.info("Shutting down Zeppelin Server ... "); try { - jettyServer.stop(); - ZeppelinServer.notebook.getInterpreterFactory().close(); - ZeppelinServer.notebook.close(); + JETTY_SERVER.stop(); + NOTEBOOK.getInterpreterFactory().close(); + NOTEBOOK.close(); } catch (Exception e) { LOG.error("Error while stopping servlet container", e); } @@ -125,18 +125,15 @@ public static void main(String[] args) throws Exception { System.exit(0); } - jettyServer.join(); - ZeppelinServer.notebook.getInterpreterFactory().close(); + JETTY_SERVER.join(); + ZeppelinServer.NOTEBOOK.getInterpreterFactory().close(); } - private static Server setupJettyServer(ZeppelinConfiguration conf) - throws Exception { - + private static Server setupJettyServer(ZeppelinConfiguration conf) { AbstractConnector connector; if (conf.useSsl()) { connector = new SslSelectChannelConnector(getSslContextFactory(conf)); - } - else { + } else { connector = new SelectChannelConnector(); } @@ -153,11 +150,9 @@ private static Server setupJettyServer(ZeppelinConfiguration conf) return server; } - private static ServletContextHandler setupNotebookServer(ZeppelinConfiguration conf) - throws Exception { - - notebookServer = new NotebookServer(); - final ServletHolder servletHolder = new ServletHolder(notebookServer); + private static ServletContextHandler setupNotebookServer(ZeppelinConfiguration conf) { + NOTEBOOK_SERVER = new NotebookServer(); + final ServletHolder servletHolder = new ServletHolder(NOTEBOOK_SERVER); servletHolder.setInitParameter("maxTextMessageSize", "1024000"); final ServletContextHandler cxfContext = new ServletContextHandler( @@ -171,9 +166,8 @@ private static ServletContextHandler setupNotebookServer(ZeppelinConfiguration c return cxfContext; } - private static SslContextFactory getSslContextFactory(ZeppelinConfiguration conf) - throws Exception { - + @SuppressWarnings("deprecation") + private static SslContextFactory getSslContextFactory(ZeppelinConfiguration conf) { // Note that the API for the SslContextFactory is different for // Jetty version 9 SslContextFactory sslContextFactory = new SslContextFactory(); @@ -194,6 +188,7 @@ private static SslContextFactory getSslContextFactory(ZeppelinConfiguration conf return sslContextFactory; } + @SuppressWarnings("unused") //TODO(bzz) why unused? private static SSLContext getSslContext(ZeppelinConfiguration conf) throws Exception { @@ -240,10 +235,7 @@ private static WebAppContext setupWebAppContext( webApp.setTempDirectory(warTempDirectory); } // Explicit bind to root - webApp.addServlet( - new ServletHolder(new DefaultServlet()), - "/*" - ); + webApp.addServlet(new ServletHolder(new DefaultServlet()), "/*"); return webApp; } @@ -251,10 +243,10 @@ public ZeppelinServer() throws Exception { ZeppelinConfiguration conf = ZeppelinConfiguration.create(); this.schedulerFactory = new SchedulerFactory(); - - this.replFactory = new InterpreterFactory(conf, notebookServer); + this.replFactory = new InterpreterFactory(conf, NOTEBOOK_SERVER); this.notebookRepo = new NotebookRepoSync(conf); - notebook = new Notebook(conf, notebookRepo, schedulerFactory, replFactory, notebookServer); + + NOTEBOOK = new Notebook(conf, notebookRepo, schedulerFactory, replFactory, NOTEBOOK_SERVER); } @Override @@ -264,14 +256,14 @@ public Set> getClasses() { } @Override - public java.util.Set getSingletons() { - Set singletons = new HashSet(); + public Set getSingletons() { + Set singletons = new HashSet<>(); /** Rest-api root endpoint */ ZeppelinRestApi root = new ZeppelinRestApi(); singletons.add(root); - NotebookRestApi notebookApi = new NotebookRestApi(notebook, notebookServer); + NotebookRestApi notebookApi = new NotebookRestApi(NOTEBOOK, NOTEBOOK_SERVER); singletons.add(notebookApi); InterpreterRestApi interpreterApi = new InterpreterRestApi(replFactory); 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 114582f6375..ed25b28f1b2 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 @@ -60,7 +60,7 @@ public class NotebookServer extends WebSocketServlet implements final List connectedSockets = new LinkedList<>(); private Notebook notebook() { - return ZeppelinServer.notebook; + return ZeppelinServer.NOTEBOOK; } @Override public boolean checkOrigin(HttpServletRequest request, String origin) { @@ -147,8 +147,7 @@ public void onMessage(NotebookSocket conn, String msg) { completion(conn, notebook, messagereceived); break; case PING: - pong(); - break; + break; //do nothing case ANGULAR_OBJECT_UPDATED: angularObjectUpdated(conn, notebook, messagereceived); break; @@ -730,6 +729,7 @@ private void runParagraph(NotebookSocket conn, Notebook notebook, public static class ParagraphJobListener implements JobListener { private NotebookServer notebookServer; private Note note; + public ParagraphJobListener(NotebookServer notebookServer, Note note) { this.notebookServer = notebookServer; this.note = note; @@ -771,8 +771,6 @@ public void afterStatusChange(Job job, Status before, Status after) { public JobListener getParagraphJobListener(Note note) { return new ParagraphJobListener(this, note); } - private void pong() { - } private void sendAllAngularObjects(Note note, NotebookSocket conn) throws IOException { List settings = note.getNoteReplLoader() 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 db7affe7c47..aa90638ebda 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 @@ -113,7 +113,7 @@ protected static void startUp() throws Exception { if ("true".equals(System.getenv("CI"))) { // assume first one is spark InterpreterSetting sparkIntpSetting = null; - for(InterpreterSetting intpSetting : ZeppelinServer.notebook.getInterpreterFactory().get()) { + for(InterpreterSetting intpSetting : ZeppelinServer.NOTEBOOK.getInterpreterFactory().get()) { if (intpSetting.getGroup().equals("spark")) { sparkIntpSetting = intpSetting; } @@ -126,11 +126,11 @@ protected static void startUp() throws Exception { sparkIntpSetting.getProperties().setProperty("spark.home", getSparkHome()); pySpark = true; - ZeppelinServer.notebook.getInterpreterFactory().restart(sparkIntpSetting.id()); + ZeppelinServer.NOTEBOOK.getInterpreterFactory().restart(sparkIntpSetting.id()); } else { // assume first one is spark InterpreterSetting sparkIntpSetting = null; - for(InterpreterSetting intpSetting : ZeppelinServer.notebook.getInterpreterFactory().get()) { + for(InterpreterSetting intpSetting : ZeppelinServer.NOTEBOOK.getInterpreterFactory().get()) { if (intpSetting.getGroup().equals("spark")) { sparkIntpSetting = intpSetting; } @@ -143,7 +143,7 @@ protected static void startUp() throws Exception { pySpark = true; } - ZeppelinServer.notebook.getInterpreterFactory().restart(sparkIntpSetting.id()); + ZeppelinServer.NOTEBOOK.getInterpreterFactory().restart(sparkIntpSetting.id()); } } } @@ -200,14 +200,14 @@ private static boolean isActiveSparkHome(File dir) { protected static void shutDown() throws Exception { if (!wasRunning) { // restart interpreter to stop all interpreter processes - List settingList = ZeppelinServer.notebook.getInterpreterFactory() + List settingList = ZeppelinServer.NOTEBOOK.getInterpreterFactory() .getDefaultInterpreterSettingList(); for (String setting : settingList) { - ZeppelinServer.notebook.getInterpreterFactory().restart(setting); + ZeppelinServer.NOTEBOOK.getInterpreterFactory().restart(setting); } LOG.info("Terminating test Zeppelin..."); - ZeppelinServer.jettyServer.stop(); + ZeppelinServer.JETTY_SERVER.stop(); executor.shutdown(); long s = System.currentTimeMillis(); @@ -359,7 +359,7 @@ protected void describeMismatchSafely(String item, Description description) { //Create new Setting and return Setting ID protected String createTempSetting(String tempName) throws IOException { - InterpreterGroup interpreterGroup = ZeppelinServer.notebook.getInterpreterFactory().add(tempName,"newGroup", + InterpreterGroup interpreterGroup = ZeppelinServer.NOTEBOOK.getInterpreterFactory().add(tempName,"newGroup", new InterpreterOption(false),new Properties()); return interpreterGroup.getId(); } 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 31118074535..8712a54cf84 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 @@ -89,7 +89,7 @@ public void getAvailableInterpreters() throws IOException { Map resp = gson.fromJson(get.getResponseBodyAsString(), new TypeToken>() { }.getType()); Map body = (Map) resp.get("body"); - assertEquals(ZeppelinServer.notebook.getInterpreterFactory().getRegisteredInterpreterList().size(), body.size()); + assertEquals(ZeppelinServer.NOTEBOOK.getInterpreterFactory().getRegisteredInterpreterList().size(), body.size()); get.releaseConnection(); } @@ -138,7 +138,7 @@ public void testSettingsCRUD() throws IOException { @Test public void testInterpreterAutoBinding() throws IOException { // create note - Note note = ZeppelinServer.notebook.createNote(); + Note note = ZeppelinServer.NOTEBOOK.createNote(); // check interpreter is binded GetMethod get = httpGet("/notebook/interpreter/bind/"+note.id()); @@ -150,13 +150,13 @@ public void testInterpreterAutoBinding() throws IOException { get.releaseConnection(); //cleanup - ZeppelinServer.notebook.removeNote(note.getId()); + ZeppelinServer.NOTEBOOK.removeNote(note.getId()); } @Test public void testInterpreterRestart() throws IOException, InterruptedException { // create new note - Note note = ZeppelinServer.notebook.createNote(); + Note note = ZeppelinServer.NOTEBOOK.createNote(); note.addParagraph(); Paragraph p = note.getLastParagraph(); Map config = p.getConfig(); @@ -175,7 +175,7 @@ public void testInterpreterRestart() throws IOException, InterruptedException { for (InterpreterSetting setting : note.getNoteReplLoader().getInterpreterSettings()) { if (setting.getName().equals("md")) { // restart - ZeppelinServer.notebook.getInterpreterFactory().restart(setting.id()); + ZeppelinServer.NOTEBOOK.getInterpreterFactory().restart(setting.id()); break; } } @@ -190,7 +190,7 @@ public void testInterpreterRestart() throws IOException, InterruptedException { } assertEquals("

markdown restarted

\n", p.getResult().message()); //cleanup - ZeppelinServer.notebook.removeNote(note.getId()); + ZeppelinServer.NOTEBOOK.removeNote(note.getId()); } @Test @@ -221,7 +221,7 @@ public void testNotebookCreateWithParagraphs() throws IOException { String newNotebookId = (String) resp.get("body"); LOG.info("newNotebookId:=" + newNotebookId); - Note newNote = ZeppelinServer.notebook.getNote(newNotebookId); + Note newNote = ZeppelinServer.NOTEBOOK.getNote(newNotebookId); assertNotNull("Can not find new note by id", newNote); // This is partial test as newNote is in memory but is not persistent String newNoteName = newNote.getName(); @@ -240,7 +240,7 @@ public void testNotebookCreateWithParagraphs() throws IOException { assertTrue("paragraph text check failed", p.getText().startsWith("text")); } // cleanup - ZeppelinServer.notebook.removeNote(newNotebookId); + ZeppelinServer.NOTEBOOK.removeNote(newNotebookId); post.releaseConnection(); } @@ -256,7 +256,7 @@ private void testNotebookCreate(String noteName) throws IOException { String newNotebookId = (String) resp.get("body"); LOG.info("newNotebookId:=" + newNotebookId); - Note newNote = ZeppelinServer.notebook.getNote(newNotebookId); + Note newNote = ZeppelinServer.NOTEBOOK.getNote(newNotebookId); assertNotNull("Can not find new note by id", newNote); // This is partial test as newNote is in memory but is not persistent String newNoteName = newNote.getName(); @@ -267,7 +267,7 @@ private void testNotebookCreate(String noteName) throws IOException { } assertEquals("compare note name", expectedNoteName, newNoteName); // cleanup - ZeppelinServer.notebook.removeNote(newNotebookId); + ZeppelinServer.NOTEBOOK.removeNote(newNotebookId); post.releaseConnection(); } @@ -276,7 +276,7 @@ private void testNotebookCreate(String noteName) throws IOException { public void testDeleteNote() throws IOException { LOG.info("testDeleteNote"); //Create note and get ID - Note note = ZeppelinServer.notebook.createNote(); + Note note = ZeppelinServer.NOTEBOOK.createNote(); String noteId = note.getId(); testDeleteNotebook(noteId); } @@ -297,7 +297,7 @@ private void testDeleteNotebook(String notebookId) throws IOException { delete.releaseConnection(); // make sure note is deleted if (!notebookId.isEmpty()) { - Note deletedNote = ZeppelinServer.notebook.getNote(notebookId); + Note deletedNote = ZeppelinServer.NOTEBOOK.getNote(notebookId); assertNull("Deleted note should be null", deletedNote); } } @@ -306,7 +306,7 @@ private void testDeleteNotebook(String notebookId) throws IOException { public void testCloneNotebook() throws IOException, CloneNotSupportedException, IllegalArgumentException { LOG.info("testCloneNotebook"); // Create note to clone - Note note = ZeppelinServer.notebook.createNote(); + Note note = ZeppelinServer.NOTEBOOK.createNote(); assertNotNull("can't create new note", note); note.setName("source note for clone"); Paragraph paragraph = note.addParagraph(); @@ -329,13 +329,13 @@ public void testCloneNotebook() throws IOException, CloneNotSupportedException, String newNotebookId = (String) resp.get("body"); LOG.info("newNotebookId:=" + newNotebookId); - Note newNote = ZeppelinServer.notebook.getNote(newNotebookId); + Note newNote = ZeppelinServer.NOTEBOOK.getNote(newNotebookId); assertNotNull("Can not find new note by id", newNote); assertEquals("Compare note names", noteName, newNote.getName()); assertEquals("Compare paragraphs count", note.getParagraphs().size(), newNote.getParagraphs().size()); //cleanup - ZeppelinServer.notebook.removeNote(note.getId()); - ZeppelinServer.notebook.removeNote(newNote.getId()); + ZeppelinServer.NOTEBOOK.removeNote(note.getId()); + ZeppelinServer.NOTEBOOK.removeNote(newNote.getId()); post.releaseConnection(); } @@ -347,7 +347,7 @@ public void testListNotebooks() throws IOException { Map resp = gson.fromJson(get.getResponseBodyAsString(), new TypeToken>() { }.getType()); List> body = (List>) resp.get("body"); - assertEquals("List notebooks are equal", ZeppelinServer.notebook.getAllNotes().size(), body.size()); + assertEquals("List notebooks are equal", ZeppelinServer.NOTEBOOK.getAllNotes().size(), body.size()); get.releaseConnection(); } @@ -355,7 +355,7 @@ public void testListNotebooks() throws IOException { public void testNoteJobs() throws IOException, InterruptedException { LOG.info("testNoteJobs"); // Create note to run test. - Note note = ZeppelinServer.notebook.createNote(); + Note note = ZeppelinServer.NOTEBOOK.createNote(); assertNotNull("can't create new note", note); note.setName("note for run test"); Paragraph paragraph = note.addParagraph(); @@ -403,13 +403,13 @@ public void testNoteJobs() throws IOException, InterruptedException { Thread.sleep(1000); //cleanup - ZeppelinServer.notebook.removeNote(note.getId()); + ZeppelinServer.NOTEBOOK.removeNote(note.getId()); } @Test public void testCronJobs() throws InterruptedException, IOException{ // create a note and a paragraph - Note note = ZeppelinServer.notebook.createNote(); + Note note = ZeppelinServer.NOTEBOOK.createNote(); note.setName("note for run test"); Paragraph paragraph = note.addParagraph(); @@ -453,7 +453,7 @@ public void testCronJobs() throws InterruptedException, IOException{ DeleteMethod deleteCron = httpDelete("/notebook/cron/" + note.getId()); assertThat("", deleteCron, isAllowed()); deleteCron.releaseConnection(); - ZeppelinServer.notebook.removeNote(note.getId()); + ZeppelinServer.NOTEBOOK.removeNote(note.getId()); } } 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 ffe5d545b02..b2edef28563 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 @@ -68,7 +68,7 @@ private void waitForFinish(Paragraph p) { @Test public void basicRDDTransformationAndActionTest() throws IOException { // create new note - Note note = ZeppelinServer.notebook.createNote(); + Note note = ZeppelinServer.NOTEBOOK.createNote(); // run markdown paragraph, again Paragraph p = note.addParagraph(); @@ -80,13 +80,13 @@ public void basicRDDTransformationAndActionTest() throws IOException { waitForFinish(p); assertEquals(Status.FINISHED, p.getStatus()); assertEquals("55", p.getResult().message()); - ZeppelinServer.notebook.removeNote(note.id()); + ZeppelinServer.NOTEBOOK.removeNote(note.id()); } @Test public void pySparkTest() throws IOException { // create new note - Note note = ZeppelinServer.notebook.createNote(); + Note note = ZeppelinServer.NOTEBOOK.createNote(); int sparkVersion = getSparkVersionNumber(note); if (isPyspark() && sparkVersion >= 12) { // pyspark supported from 1.2.1 @@ -101,13 +101,13 @@ public void pySparkTest() throws IOException { assertEquals(Status.FINISHED, p.getStatus()); assertEquals("55\n", p.getResult().message()); } - ZeppelinServer.notebook.removeNote(note.id()); + ZeppelinServer.NOTEBOOK.removeNote(note.id()); } @Test public void pySparkAutoConvertOptionTest() throws IOException { // create new note - Note note = ZeppelinServer.notebook.createNote(); + Note note = ZeppelinServer.NOTEBOOK.createNote(); int sparkVersion = getSparkVersionNumber(note); @@ -124,13 +124,13 @@ public void pySparkAutoConvertOptionTest() throws IOException { assertEquals(Status.FINISHED, p.getStatus()); assertEquals("10\n", p.getResult().message()); } - ZeppelinServer.notebook.removeNote(note.id()); + ZeppelinServer.NOTEBOOK.removeNote(note.id()); } @Test public void zRunTest() throws IOException { // create new note - Note note = ZeppelinServer.notebook.createNote(); + Note note = ZeppelinServer.NOTEBOOK.createNote(); Paragraph p0 = note.addParagraph(); Map config0 = p0.getConfig(); config0.put("enabled", true); @@ -156,22 +156,22 @@ public void zRunTest() throws IOException { assertEquals(Status.FINISHED, p2.getStatus()); assertEquals("10", p2.getResult().message()); - ZeppelinServer.notebook.removeNote(note.id()); + ZeppelinServer.NOTEBOOK.removeNote(note.id()); } @Test public void pySparkDepLoaderTest() throws IOException { // create new note - Note note = ZeppelinServer.notebook.createNote(); + Note note = ZeppelinServer.NOTEBOOK.createNote(); if (isPyspark() && getSparkVersionNumber(note) >= 14) { // restart spark interpreter List settings = - ZeppelinServer.notebook.getBindedInterpreterSettings(note.id()); + ZeppelinServer.NOTEBOOK.getBindedInterpreterSettings(note.id()); for (InterpreterSetting setting : settings) { if (setting.getGroup().equals("spark")) { - ZeppelinServer.notebook.getInterpreterFactory().restart(setting.id()); + ZeppelinServer.NOTEBOOK.getInterpreterFactory().restart(setting.id()); break; } } 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 faef28709ed..de020ca185a 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 @@ -59,8 +59,8 @@ public class NotebookServerTest extends AbstractTestRestApi { public static void init() throws Exception { AbstractTestRestApi.startUp(); gson = new Gson(); - notebook = ZeppelinServer.notebook; - notebookServer = ZeppelinServer.notebookServer; + notebook = ZeppelinServer.NOTEBOOK; + notebookServer = ZeppelinServer.NOTEBOOK_SERVER; } @AfterClass From 497a6cad361b78f659e026a9ebb18af267ecd843 Mon Sep 17 00:00:00 2001 From: Alexander Bezzubov Date: Mon, 21 Dec 2015 15:34:01 +0900 Subject: [PATCH 2/3] ZEPPELIN-312: replace sync \w lock-free collection Replacing synchronization though critical section over the collection of sockets with the lock-free datastructure impl of java.util.concurrent.ConcurrentLinkedQueue Synchronization was used to avoid parallel collection modifications, as the calls `.sendMessage()` in Jetty implementation of Websockets are thread-safe and can proceed concurrently. --- .../zeppelin/socket/NotebookServer.java | 26 ++++++++----------- 1 file changed, 11 insertions(+), 15 deletions(-) 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 ed25b28f1b2..d25aa624983 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 @@ -19,6 +19,8 @@ import java.net.URISyntaxException; import java.net.UnknownHostException; import java.util.*; +import java.util.concurrent.ConcurrentLinkedQueue; + import javax.servlet.http.HttpServletRequest; import org.apache.zeppelin.conf.ZeppelinConfiguration; @@ -44,12 +46,12 @@ import org.quartz.SchedulerException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; + import com.google.common.base.Strings; import com.google.gson.Gson; /** * Zeppelin websocket service. * - * @author anthonycorbacho */ public class NotebookServer extends WebSocketServlet implements NotebookSocketListener, JobListenerFactory, AngularObjectRegistryListener { @@ -57,7 +59,7 @@ public class NotebookServer extends WebSocketServlet implements .getLogger(NotebookServer.class); Gson gson = new Gson(); final Map> noteSocketMap = new HashMap<>(); - final List connectedSockets = new LinkedList<>(); + final Queue connectedSockets = new ConcurrentLinkedQueue<>(); private Notebook notebook() { return ZeppelinServer.NOTEBOOK; @@ -85,9 +87,7 @@ public WebSocket doWebSocketConnect(HttpServletRequest req, String protocol) { public void onOpen(NotebookSocket conn) { LOG.info("New connection from {} : {}", conn.getRequest().getRemoteAddr(), conn.getRequest().getRemotePort()); - synchronized (connectedSockets) { - connectedSockets.add(conn); - } + connectedSockets.add(conn); } @Override @@ -165,9 +165,7 @@ public void onClose(NotebookSocket conn, int code, String reason) { LOG.info("Closed connection to {} : {}. ({}) {}", conn.getRequest() .getRemoteAddr(), conn.getRequest().getRemotePort(), code, reason); removeConnectionFromAllNote(conn); - synchronized (connectedSockets) { - connectedSockets.remove(conn); - } + connectedSockets.remove(conn); } protected Message deserializeMessage(String msg) { @@ -284,13 +282,11 @@ private void broadcastExcept(String noteId, Message m, NotebookSocket exclude) { } private void broadcastAll(Message m) { - synchronized (connectedSockets) { - for (NotebookSocket conn : connectedSockets) { - try { - conn.send(serializeMessage(m)); - } catch (IOException e) { - LOG.error("socket error", e); - } + for (NotebookSocket conn : connectedSockets) { + try { + conn.send(serializeMessage(m)); + } catch (IOException e) { + LOG.error("socket error", e); } } } From bbbf8ae8151d6200be89d0c302b68149bd33efb1 Mon Sep 17 00:00:00 2001 From: Alexander Bezzubov Date: Tue, 22 Dec 2015 13:07:43 +0900 Subject: [PATCH 3/3] ZEPPELIN-312: refactoring ZeppelinServer to better Java style naming conventions --- .../zeppelin/server/ZeppelinServer.java | 57 ++++++++++--------- .../zeppelin/socket/NotebookServer.java | 2 +- .../zeppelin/rest/AbstractTestRestApi.java | 24 ++++---- .../zeppelin/rest/ZeppelinRestApiTest.java | 42 +++++++------- .../rest/ZeppelinSparkClusterTest.java | 22 +++---- .../zeppelin/socket/NotebookServerTest.java | 4 +- .../zeppelin/conf/ZeppelinConfiguration.java | 6 +- 7 files changed, 80 insertions(+), 77 deletions(-) diff --git a/zeppelin-server/src/main/java/org/apache/zeppelin/server/ZeppelinServer.java b/zeppelin-server/src/main/java/org/apache/zeppelin/server/ZeppelinServer.java index 5f700a54484..7286b355a5c 100644 --- a/zeppelin-server/src/main/java/org/apache/zeppelin/server/ZeppelinServer.java +++ b/zeppelin-server/src/main/java/org/apache/zeppelin/server/ZeppelinServer.java @@ -59,24 +59,33 @@ * Main class of Zeppelin. * */ - public class ZeppelinServer extends Application { private static final Logger LOG = LoggerFactory.getLogger(ZeppelinServer.class); - public static Notebook NOTEBOOK; - public static NotebookServer NOTEBOOK_SERVER; - public static Server JETTY_SERVER; + public static Notebook notebook; + public static Server jettyWebServer; + public static NotebookServer notebookWsServer; private SchedulerFactory schedulerFactory; private InterpreterFactory replFactory; private NotebookRepo notebookRepo; + public ZeppelinServer() throws Exception { + LOG.info("Constructor starteds"); + ZeppelinConfiguration conf = ZeppelinConfiguration.create(); + + this.schedulerFactory = new SchedulerFactory(); + this.replFactory = new InterpreterFactory(conf, notebookWsServer); + this.notebookRepo = new NotebookRepoSync(conf); + + notebook = new Notebook(conf, notebookRepo, schedulerFactory, replFactory, notebookWsServer); + LOG.info("Constructor finished"); + } + public static void main(String[] args) throws InterruptedException { ZeppelinConfiguration conf = ZeppelinConfiguration.create(); conf.setProperty("args", args); - JETTY_SERVER = setupJettyServer(conf); - // REST api final ServletContextHandler restApiContext = setupRestApiContextHandler(conf); @@ -89,24 +98,26 @@ public static void main(String[] args) throws InterruptedException { // add all handlers ContextHandlerCollection contexts = new ContextHandlerCollection(); contexts.setHandlers(new Handler[]{restApiContext, notebookContext, webApp}); - JETTY_SERVER.setHandler(contexts); - LOG.info("Start zeppelin server"); + jettyWebServer = setupJettyServer(conf); + jettyWebServer.setHandler(contexts); + + LOG.info("Starting zeppelin server"); try { - JETTY_SERVER.start(); + jettyWebServer.start(); //Instantiates ZeppelinServer } catch (Exception e) { LOG.error("Error while running jettyServer", e); System.exit(-1); } - LOG.info("Started zeppelin server"); + LOG.info("Done, zeppelin server started"); Runtime.getRuntime().addShutdownHook(new Thread(){ @Override public void run() { LOG.info("Shutting down Zeppelin Server ... "); try { - JETTY_SERVER.stop(); - NOTEBOOK.getInterpreterFactory().close(); - NOTEBOOK.close(); + jettyWebServer.stop(); + notebook.getInterpreterFactory().close(); + notebook.close(); } catch (Exception e) { LOG.error("Error while stopping servlet container", e); } @@ -125,8 +136,8 @@ public static void main(String[] args) throws InterruptedException { System.exit(0); } - JETTY_SERVER.join(); - ZeppelinServer.NOTEBOOK.getInterpreterFactory().close(); + jettyWebServer.join(); + ZeppelinServer.notebook.getInterpreterFactory().close(); } private static Server setupJettyServer(ZeppelinConfiguration conf) { @@ -151,8 +162,8 @@ private static Server setupJettyServer(ZeppelinConfiguration conf) { } private static ServletContextHandler setupNotebookServer(ZeppelinConfiguration conf) { - NOTEBOOK_SERVER = new NotebookServer(); - final ServletHolder servletHolder = new ServletHolder(NOTEBOOK_SERVER); + notebookWsServer = new NotebookServer(); + final ServletHolder servletHolder = new ServletHolder(notebookWsServer); servletHolder.setInitParameter("maxTextMessageSize", "1024000"); final ServletContextHandler cxfContext = new ServletContextHandler( @@ -239,16 +250,6 @@ private static WebAppContext setupWebAppContext( return webApp; } - public ZeppelinServer() throws Exception { - ZeppelinConfiguration conf = ZeppelinConfiguration.create(); - - this.schedulerFactory = new SchedulerFactory(); - this.replFactory = new InterpreterFactory(conf, NOTEBOOK_SERVER); - this.notebookRepo = new NotebookRepoSync(conf); - - NOTEBOOK = new Notebook(conf, notebookRepo, schedulerFactory, replFactory, NOTEBOOK_SERVER); - } - @Override public Set> getClasses() { Set> classes = new HashSet>(); @@ -263,7 +264,7 @@ public Set getSingletons() { ZeppelinRestApi root = new ZeppelinRestApi(); singletons.add(root); - NotebookRestApi notebookApi = new NotebookRestApi(NOTEBOOK, NOTEBOOK_SERVER); + NotebookRestApi notebookApi = new NotebookRestApi(notebook, notebookWsServer); singletons.add(notebookApi); InterpreterRestApi interpreterApi = new InterpreterRestApi(replFactory); 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 d25aa624983..a010e581ceb 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 @@ -62,7 +62,7 @@ public class NotebookServer extends WebSocketServlet implements final Queue connectedSockets = new ConcurrentLinkedQueue<>(); private Notebook notebook() { - return ZeppelinServer.NOTEBOOK; + return ZeppelinServer.notebook; } @Override public boolean checkOrigin(HttpServletRequest request, String origin) { 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 aa90638ebda..69d10228b41 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 @@ -29,8 +29,12 @@ import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpMethodBase; -import org.apache.commons.httpclient.methods.*; -import org.apache.zeppelin.interpreter.Interpreter.RegisteredInterpreter; +import org.apache.commons.httpclient.methods.ByteArrayRequestEntity; +import org.apache.commons.httpclient.methods.DeleteMethod; +import org.apache.commons.httpclient.methods.GetMethod; +import org.apache.commons.httpclient.methods.PostMethod; +import org.apache.commons.httpclient.methods.PutMethod; +import org.apache.commons.httpclient.methods.RequestEntity; import org.apache.zeppelin.interpreter.InterpreterGroup; import org.apache.zeppelin.interpreter.InterpreterOption; import org.apache.zeppelin.interpreter.InterpreterSetting; @@ -113,7 +117,7 @@ protected static void startUp() throws Exception { if ("true".equals(System.getenv("CI"))) { // assume first one is spark InterpreterSetting sparkIntpSetting = null; - for(InterpreterSetting intpSetting : ZeppelinServer.NOTEBOOK.getInterpreterFactory().get()) { + for(InterpreterSetting intpSetting : ZeppelinServer.notebook.getInterpreterFactory().get()) { if (intpSetting.getGroup().equals("spark")) { sparkIntpSetting = intpSetting; } @@ -126,11 +130,11 @@ protected static void startUp() throws Exception { sparkIntpSetting.getProperties().setProperty("spark.home", getSparkHome()); pySpark = true; - ZeppelinServer.NOTEBOOK.getInterpreterFactory().restart(sparkIntpSetting.id()); + ZeppelinServer.notebook.getInterpreterFactory().restart(sparkIntpSetting.id()); } else { // assume first one is spark InterpreterSetting sparkIntpSetting = null; - for(InterpreterSetting intpSetting : ZeppelinServer.NOTEBOOK.getInterpreterFactory().get()) { + for(InterpreterSetting intpSetting : ZeppelinServer.notebook.getInterpreterFactory().get()) { if (intpSetting.getGroup().equals("spark")) { sparkIntpSetting = intpSetting; } @@ -143,7 +147,7 @@ protected static void startUp() throws Exception { pySpark = true; } - ZeppelinServer.NOTEBOOK.getInterpreterFactory().restart(sparkIntpSetting.id()); + ZeppelinServer.notebook.getInterpreterFactory().restart(sparkIntpSetting.id()); } } } @@ -200,14 +204,14 @@ private static boolean isActiveSparkHome(File dir) { protected static void shutDown() throws Exception { if (!wasRunning) { // restart interpreter to stop all interpreter processes - List settingList = ZeppelinServer.NOTEBOOK.getInterpreterFactory() + List settingList = ZeppelinServer.notebook.getInterpreterFactory() .getDefaultInterpreterSettingList(); for (String setting : settingList) { - ZeppelinServer.NOTEBOOK.getInterpreterFactory().restart(setting); + ZeppelinServer.notebook.getInterpreterFactory().restart(setting); } LOG.info("Terminating test Zeppelin..."); - ZeppelinServer.JETTY_SERVER.stop(); + ZeppelinServer.jettyWebServer.stop(); executor.shutdown(); long s = System.currentTimeMillis(); @@ -359,7 +363,7 @@ protected void describeMismatchSafely(String item, Description description) { //Create new Setting and return Setting ID protected String createTempSetting(String tempName) throws IOException { - InterpreterGroup interpreterGroup = ZeppelinServer.NOTEBOOK.getInterpreterFactory().add(tempName,"newGroup", + InterpreterGroup interpreterGroup = ZeppelinServer.notebook.getInterpreterFactory().add(tempName,"newGroup", new InterpreterOption(false),new Properties()); return interpreterGroup.getId(); } 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 8712a54cf84..31118074535 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 @@ -89,7 +89,7 @@ public void getAvailableInterpreters() throws IOException { Map resp = gson.fromJson(get.getResponseBodyAsString(), new TypeToken>() { }.getType()); Map body = (Map) resp.get("body"); - assertEquals(ZeppelinServer.NOTEBOOK.getInterpreterFactory().getRegisteredInterpreterList().size(), body.size()); + assertEquals(ZeppelinServer.notebook.getInterpreterFactory().getRegisteredInterpreterList().size(), body.size()); get.releaseConnection(); } @@ -138,7 +138,7 @@ public void testSettingsCRUD() throws IOException { @Test public void testInterpreterAutoBinding() throws IOException { // create note - Note note = ZeppelinServer.NOTEBOOK.createNote(); + Note note = ZeppelinServer.notebook.createNote(); // check interpreter is binded GetMethod get = httpGet("/notebook/interpreter/bind/"+note.id()); @@ -150,13 +150,13 @@ public void testInterpreterAutoBinding() throws IOException { get.releaseConnection(); //cleanup - ZeppelinServer.NOTEBOOK.removeNote(note.getId()); + ZeppelinServer.notebook.removeNote(note.getId()); } @Test public void testInterpreterRestart() throws IOException, InterruptedException { // create new note - Note note = ZeppelinServer.NOTEBOOK.createNote(); + Note note = ZeppelinServer.notebook.createNote(); note.addParagraph(); Paragraph p = note.getLastParagraph(); Map config = p.getConfig(); @@ -175,7 +175,7 @@ public void testInterpreterRestart() throws IOException, InterruptedException { for (InterpreterSetting setting : note.getNoteReplLoader().getInterpreterSettings()) { if (setting.getName().equals("md")) { // restart - ZeppelinServer.NOTEBOOK.getInterpreterFactory().restart(setting.id()); + ZeppelinServer.notebook.getInterpreterFactory().restart(setting.id()); break; } } @@ -190,7 +190,7 @@ public void testInterpreterRestart() throws IOException, InterruptedException { } assertEquals("

markdown restarted

\n", p.getResult().message()); //cleanup - ZeppelinServer.NOTEBOOK.removeNote(note.getId()); + ZeppelinServer.notebook.removeNote(note.getId()); } @Test @@ -221,7 +221,7 @@ public void testNotebookCreateWithParagraphs() throws IOException { String newNotebookId = (String) resp.get("body"); LOG.info("newNotebookId:=" + newNotebookId); - Note newNote = ZeppelinServer.NOTEBOOK.getNote(newNotebookId); + Note newNote = ZeppelinServer.notebook.getNote(newNotebookId); assertNotNull("Can not find new note by id", newNote); // This is partial test as newNote is in memory but is not persistent String newNoteName = newNote.getName(); @@ -240,7 +240,7 @@ public void testNotebookCreateWithParagraphs() throws IOException { assertTrue("paragraph text check failed", p.getText().startsWith("text")); } // cleanup - ZeppelinServer.NOTEBOOK.removeNote(newNotebookId); + ZeppelinServer.notebook.removeNote(newNotebookId); post.releaseConnection(); } @@ -256,7 +256,7 @@ private void testNotebookCreate(String noteName) throws IOException { String newNotebookId = (String) resp.get("body"); LOG.info("newNotebookId:=" + newNotebookId); - Note newNote = ZeppelinServer.NOTEBOOK.getNote(newNotebookId); + Note newNote = ZeppelinServer.notebook.getNote(newNotebookId); assertNotNull("Can not find new note by id", newNote); // This is partial test as newNote is in memory but is not persistent String newNoteName = newNote.getName(); @@ -267,7 +267,7 @@ private void testNotebookCreate(String noteName) throws IOException { } assertEquals("compare note name", expectedNoteName, newNoteName); // cleanup - ZeppelinServer.NOTEBOOK.removeNote(newNotebookId); + ZeppelinServer.notebook.removeNote(newNotebookId); post.releaseConnection(); } @@ -276,7 +276,7 @@ private void testNotebookCreate(String noteName) throws IOException { public void testDeleteNote() throws IOException { LOG.info("testDeleteNote"); //Create note and get ID - Note note = ZeppelinServer.NOTEBOOK.createNote(); + Note note = ZeppelinServer.notebook.createNote(); String noteId = note.getId(); testDeleteNotebook(noteId); } @@ -297,7 +297,7 @@ private void testDeleteNotebook(String notebookId) throws IOException { delete.releaseConnection(); // make sure note is deleted if (!notebookId.isEmpty()) { - Note deletedNote = ZeppelinServer.NOTEBOOK.getNote(notebookId); + Note deletedNote = ZeppelinServer.notebook.getNote(notebookId); assertNull("Deleted note should be null", deletedNote); } } @@ -306,7 +306,7 @@ private void testDeleteNotebook(String notebookId) throws IOException { public void testCloneNotebook() throws IOException, CloneNotSupportedException, IllegalArgumentException { LOG.info("testCloneNotebook"); // Create note to clone - Note note = ZeppelinServer.NOTEBOOK.createNote(); + Note note = ZeppelinServer.notebook.createNote(); assertNotNull("can't create new note", note); note.setName("source note for clone"); Paragraph paragraph = note.addParagraph(); @@ -329,13 +329,13 @@ public void testCloneNotebook() throws IOException, CloneNotSupportedException, String newNotebookId = (String) resp.get("body"); LOG.info("newNotebookId:=" + newNotebookId); - Note newNote = ZeppelinServer.NOTEBOOK.getNote(newNotebookId); + Note newNote = ZeppelinServer.notebook.getNote(newNotebookId); assertNotNull("Can not find new note by id", newNote); assertEquals("Compare note names", noteName, newNote.getName()); assertEquals("Compare paragraphs count", note.getParagraphs().size(), newNote.getParagraphs().size()); //cleanup - ZeppelinServer.NOTEBOOK.removeNote(note.getId()); - ZeppelinServer.NOTEBOOK.removeNote(newNote.getId()); + ZeppelinServer.notebook.removeNote(note.getId()); + ZeppelinServer.notebook.removeNote(newNote.getId()); post.releaseConnection(); } @@ -347,7 +347,7 @@ public void testListNotebooks() throws IOException { Map resp = gson.fromJson(get.getResponseBodyAsString(), new TypeToken>() { }.getType()); List> body = (List>) resp.get("body"); - assertEquals("List notebooks are equal", ZeppelinServer.NOTEBOOK.getAllNotes().size(), body.size()); + assertEquals("List notebooks are equal", ZeppelinServer.notebook.getAllNotes().size(), body.size()); get.releaseConnection(); } @@ -355,7 +355,7 @@ public void testListNotebooks() throws IOException { public void testNoteJobs() throws IOException, InterruptedException { LOG.info("testNoteJobs"); // Create note to run test. - Note note = ZeppelinServer.NOTEBOOK.createNote(); + Note note = ZeppelinServer.notebook.createNote(); assertNotNull("can't create new note", note); note.setName("note for run test"); Paragraph paragraph = note.addParagraph(); @@ -403,13 +403,13 @@ public void testNoteJobs() throws IOException, InterruptedException { Thread.sleep(1000); //cleanup - ZeppelinServer.NOTEBOOK.removeNote(note.getId()); + ZeppelinServer.notebook.removeNote(note.getId()); } @Test public void testCronJobs() throws InterruptedException, IOException{ // create a note and a paragraph - Note note = ZeppelinServer.NOTEBOOK.createNote(); + Note note = ZeppelinServer.notebook.createNote(); note.setName("note for run test"); Paragraph paragraph = note.addParagraph(); @@ -453,7 +453,7 @@ public void testCronJobs() throws InterruptedException, IOException{ DeleteMethod deleteCron = httpDelete("/notebook/cron/" + note.getId()); assertThat("", deleteCron, isAllowed()); deleteCron.releaseConnection(); - ZeppelinServer.NOTEBOOK.removeNote(note.getId()); + ZeppelinServer.notebook.removeNote(note.getId()); } } 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 b2edef28563..ffe5d545b02 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 @@ -68,7 +68,7 @@ private void waitForFinish(Paragraph p) { @Test public void basicRDDTransformationAndActionTest() throws IOException { // create new note - Note note = ZeppelinServer.NOTEBOOK.createNote(); + Note note = ZeppelinServer.notebook.createNote(); // run markdown paragraph, again Paragraph p = note.addParagraph(); @@ -80,13 +80,13 @@ public void basicRDDTransformationAndActionTest() throws IOException { waitForFinish(p); assertEquals(Status.FINISHED, p.getStatus()); assertEquals("55", p.getResult().message()); - ZeppelinServer.NOTEBOOK.removeNote(note.id()); + ZeppelinServer.notebook.removeNote(note.id()); } @Test public void pySparkTest() throws IOException { // create new note - Note note = ZeppelinServer.NOTEBOOK.createNote(); + Note note = ZeppelinServer.notebook.createNote(); int sparkVersion = getSparkVersionNumber(note); if (isPyspark() && sparkVersion >= 12) { // pyspark supported from 1.2.1 @@ -101,13 +101,13 @@ public void pySparkTest() throws IOException { assertEquals(Status.FINISHED, p.getStatus()); assertEquals("55\n", p.getResult().message()); } - ZeppelinServer.NOTEBOOK.removeNote(note.id()); + ZeppelinServer.notebook.removeNote(note.id()); } @Test public void pySparkAutoConvertOptionTest() throws IOException { // create new note - Note note = ZeppelinServer.NOTEBOOK.createNote(); + Note note = ZeppelinServer.notebook.createNote(); int sparkVersion = getSparkVersionNumber(note); @@ -124,13 +124,13 @@ public void pySparkAutoConvertOptionTest() throws IOException { assertEquals(Status.FINISHED, p.getStatus()); assertEquals("10\n", p.getResult().message()); } - ZeppelinServer.NOTEBOOK.removeNote(note.id()); + ZeppelinServer.notebook.removeNote(note.id()); } @Test public void zRunTest() throws IOException { // create new note - Note note = ZeppelinServer.NOTEBOOK.createNote(); + Note note = ZeppelinServer.notebook.createNote(); Paragraph p0 = note.addParagraph(); Map config0 = p0.getConfig(); config0.put("enabled", true); @@ -156,22 +156,22 @@ public void zRunTest() throws IOException { assertEquals(Status.FINISHED, p2.getStatus()); assertEquals("10", p2.getResult().message()); - ZeppelinServer.NOTEBOOK.removeNote(note.id()); + ZeppelinServer.notebook.removeNote(note.id()); } @Test public void pySparkDepLoaderTest() throws IOException { // create new note - Note note = ZeppelinServer.NOTEBOOK.createNote(); + Note note = ZeppelinServer.notebook.createNote(); if (isPyspark() && getSparkVersionNumber(note) >= 14) { // restart spark interpreter List settings = - ZeppelinServer.NOTEBOOK.getBindedInterpreterSettings(note.id()); + ZeppelinServer.notebook.getBindedInterpreterSettings(note.id()); for (InterpreterSetting setting : settings) { if (setting.getGroup().equals("spark")) { - ZeppelinServer.NOTEBOOK.getInterpreterFactory().restart(setting.id()); + ZeppelinServer.notebook.getInterpreterFactory().restart(setting.id()); break; } } 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 de020ca185a..67d12b7edf2 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 @@ -59,8 +59,8 @@ public class NotebookServerTest extends AbstractTestRestApi { public static void init() throws Exception { AbstractTestRestApi.startUp(); gson = new Gson(); - notebook = ZeppelinServer.NOTEBOOK; - notebookServer = ZeppelinServer.NOTEBOOK_SERVER; + notebook = ZeppelinServer.notebook; + notebookServer = ZeppelinServer.notebookWsServer; } @AfterClass diff --git a/zeppelin-zengine/src/main/java/org/apache/zeppelin/conf/ZeppelinConfiguration.java b/zeppelin-zengine/src/main/java/org/apache/zeppelin/conf/ZeppelinConfiguration.java index 909345a1c48..72b6a3ce4a5 100755 --- a/zeppelin-zengine/src/main/java/org/apache/zeppelin/conf/ZeppelinConfiguration.java +++ b/zeppelin-zengine/src/main/java/org/apache/zeppelin/conf/ZeppelinConfiguration.java @@ -18,12 +18,12 @@ package org.apache.zeppelin.conf; import java.net.URL; -import java.util.*; +import java.util.Arrays; +import java.util.List; import org.apache.commons.configuration.ConfigurationException; import org.apache.commons.configuration.XMLConfiguration; import org.apache.commons.configuration.tree.ConfigurationNode; -import org.apache.zeppelin.notebook.repo.S3NotebookRepo; import org.apache.zeppelin.notebook.repo.VFSNotebookRepo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -31,8 +31,6 @@ /** * Zeppelin configuration. * - * @author Leemoonsoo - * */ public class ZeppelinConfiguration extends XMLConfiguration { private static final String ZEPPELIN_SITE_XML = "zeppelin-site.xml";