http://git-wip-us.apache.org/repos/asf/zeppelin/blob/0d746fa2/zeppelin-integration/src/test/java/org/apache/zeppelin/integration/SparkParagraphIT.java ---------------------------------------------------------------------- diff --git a/zeppelin-integration/src/test/java/org/apache/zeppelin/integration/SparkParagraphIT.java b/zeppelin-integration/src/test/java/org/apache/zeppelin/integration/SparkParagraphIT.java index 479eae5..1804fc4 100644 --- a/zeppelin-integration/src/test/java/org/apache/zeppelin/integration/SparkParagraphIT.java +++ b/zeppelin-integration/src/test/java/org/apache/zeppelin/integration/SparkParagraphIT.java @@ -17,7 +17,7 @@ package org.apache.zeppelin.integration; -import java.util.List; + import org.apache.zeppelin.AbstractZeppelinIT; import org.apache.zeppelin.WebDriverManager; import org.hamcrest.CoreMatchers; @@ -32,10 +32,13 @@ import org.openqa.selenium.WebElement; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.util.List; + public class SparkParagraphIT extends AbstractZeppelinIT { private static final Logger LOG = LoggerFactory.getLogger(SparkParagraphIT.class); - @Rule public ErrorCollector collector = new ErrorCollector(); + @Rule + public ErrorCollector collector = new ErrorCollector(); @Before public void startUp() { @@ -69,35 +72,33 @@ public class SparkParagraphIT extends AbstractZeppelinIT { val bank = bankText.map(s => s.split(";")).filter(s => s(0) != "\"age\"").map(s => Bank(s(0).toInt,s(1).replaceAll("\"", ""),s(2).replaceAll("\"", ""),s(3).replaceAll("\"", ""),s(5).replaceAll("\"", "").toInt)).toDF() bank.registerTempTable("bank") */ - setTextOfParagraph( - 2, - "import org.apache.commons.io.IOUtils\\n" - + "import java.net.URL\\n" - + "import java.nio.charset.Charset\\n" - + "val bankText = sc.parallelize(IOUtils.toString(new URL(\"https://s3.amazonaws.com/apache-zeppelin/tutorial/bank/bank.csv\"),Charset.forName(\"utf8\")).split(\"\\\\n\"))\\n" - + "case class Bank(age: Integer, job: String, marital: String, education: String, balance: Integer)\\n" - + "\\n" - + "val bank = bankText.map(s => s.split(\";\")).filter(s => s(0) != \"\\\\\"age\\\\\"\").map(s => Bank(s(0).toInt,s(1).replaceAll(\"\\\\\"\", \"\"),s(2).replaceAll(\"\\\\\"\", \"\"),s(3).replaceAll(\"\\\\\"\", \"\"),s(5).replaceAll(\"\\\\\"\", \"\").toInt)).toDF()\\n" - + "bank.registerTempTable(\"bank\")"); + setTextOfParagraph(2, "import org.apache.commons.io.IOUtils\\n" + + "import java.net.URL\\n" + + "import java.nio.charset.Charset\\n" + + "val bankText = sc.parallelize(IOUtils.toString(new URL(\"https://s3.amazonaws.com/apache-zeppelin/tutorial/bank/bank.csv\"),Charset.forName(\"utf8\")).split(\"\\\\n\"))\\n" + + "case class Bank(age: Integer, job: String, marital: String, education: String, balance: Integer)\\n" + + "\\n" + + "val bank = bankText.map(s => s.split(\";\")).filter(s => s(0) != \"\\\\\"age\\\\\"\").map(s => Bank(s(0).toInt,s(1).replaceAll(\"\\\\\"\", \"\"),s(2).replaceAll(\"\\\\\"\", \"\"),s(3).replaceAll(\"\\\\\"\", \"\"),s(5).replaceAll(\"\\\\\"\", \"\").toInt)).toDF()\\n" + + "bank.registerTempTable(\"bank\")"); runParagraph(2); try { waitForParagraph(2, "FINISHED"); } catch (TimeoutException e) { waitForParagraph(2, "ERROR"); - collector.checkThat( - "2nd Paragraph from SparkParagraphIT of testSpark status:", - "ERROR", - CoreMatchers.equalTo("FINISHED")); + collector.checkThat("2nd Paragraph from SparkParagraphIT of testSpark status:", + "ERROR", CoreMatchers.equalTo("FINISHED") + ); } - WebElement paragraph2Result = - driver.findElement(By.xpath(getParagraphXPath(2) + "//div[contains(@id,\"_text\")]")); + WebElement paragraph2Result = driver.findElement(By.xpath( + getParagraphXPath(2) + "//div[contains(@id,\"_text\")]")); - collector.checkThat( - "2nd Paragraph from SparkParagraphIT of testSpark result: ", - paragraph2Result.getText().toString(), - CoreMatchers.containsString("import org.apache.commons.io.IOUtils")); + collector.checkThat("2nd Paragraph from SparkParagraphIT of testSpark result: ", + paragraph2Result.getText().toString(), CoreMatchers.containsString( + "import org.apache.commons.io.IOUtils" + ) + ); } catch (Exception e) { handleException("Exception in SparkParagraphIT while testSpark", e); @@ -107,8 +108,9 @@ public class SparkParagraphIT extends AbstractZeppelinIT { @Test public void testPySpark() throws Exception { try { - setTextOfParagraph( - 1, "%pyspark\\n" + "for x in range(0, 3):\\n" + " print \"test loop %d\" % (x)"); + setTextOfParagraph(1, "%pyspark\\n" + + "for x in range(0, 3):\\n" + + " print \"test loop %d\" % (x)"); runParagraph(1); @@ -116,37 +118,35 @@ public class SparkParagraphIT extends AbstractZeppelinIT { waitForParagraph(1, "FINISHED"); } catch (TimeoutException e) { waitForParagraph(1, "ERROR"); - collector.checkThat( - "Paragraph from SparkParagraphIT of testPySpark status: ", - "ERROR", - CoreMatchers.equalTo("FINISHED")); + collector.checkThat("Paragraph from SparkParagraphIT of testPySpark status: ", + "ERROR", CoreMatchers.equalTo("FINISHED") + ); } - WebElement paragraph1Result = - driver.findElement(By.xpath(getParagraphXPath(1) + "//div[contains(@id,\"_text\")]")); - collector.checkThat( - "Paragraph from SparkParagraphIT of testPySpark result: ", - paragraph1Result.getText().toString(), - CoreMatchers.containsString("test loop 0\ntest loop 1\ntest loop 2")); + WebElement paragraph1Result = driver.findElement(By.xpath( + getParagraphXPath(1) + "//div[contains(@id,\"_text\")]")); + collector.checkThat("Paragraph from SparkParagraphIT of testPySpark result: ", + paragraph1Result.getText().toString(), CoreMatchers.containsString("test loop 0\ntest loop 1\ntest loop 2") + ); // the last statement's evaluation result is printed - setTextOfParagraph(2, "%pyspark\\n" + "sc.version\\n" + "1+1"); + setTextOfParagraph(2, "%pyspark\\n" + + "sc.version\\n" + + "1+1"); runParagraph(2); try { waitForParagraph(2, "FINISHED"); } catch (TimeoutException e) { waitForParagraph(2, "ERROR"); - collector.checkThat( - "Paragraph from SparkParagraphIT of testPySpark status: ", - "ERROR", - CoreMatchers.equalTo("FINISHED")); + collector.checkThat("Paragraph from SparkParagraphIT of testPySpark status: ", + "ERROR", CoreMatchers.equalTo("FINISHED") + ); } - WebElement paragraph2Result = - driver.findElement(By.xpath(getParagraphXPath(2) + "//div[contains(@id,\"_text\")]")); - collector.checkThat( - "Paragraph from SparkParagraphIT of testPySpark result: ", - paragraph2Result.getText().toString(), - CoreMatchers.equalTo("2")); + WebElement paragraph2Result = driver.findElement(By.xpath( + getParagraphXPath(2) + "//div[contains(@id,\"_text\")]")); + collector.checkThat("Paragraph from SparkParagraphIT of testPySpark result: ", + paragraph2Result.getText().toString(), CoreMatchers.equalTo("2") + ); } catch (Exception e) { handleException("Exception in SparkParagraphIT while testPySpark", e); @@ -156,86 +156,74 @@ public class SparkParagraphIT extends AbstractZeppelinIT { @Test public void testSqlSpark() throws Exception { try { - setTextOfParagraph(1, "%sql\\n" + "select * from bank limit 1"); + setTextOfParagraph(1,"%sql\\n" + + "select * from bank limit 1"); runParagraph(1); try { waitForParagraph(1, "FINISHED"); } catch (TimeoutException e) { waitForParagraph(1, "ERROR"); - collector.checkThat( - "Paragraph from SparkParagraphIT of testSqlSpark status: ", - "ERROR", - CoreMatchers.equalTo("FINISHED")); + collector.checkThat("Paragraph from SparkParagraphIT of testSqlSpark status: ", + "ERROR", CoreMatchers.equalTo("FINISHED") + ); } // Age, Job, Marital, Education, Balance - List<WebElement> tableHeaders = - driver.findElements(By.cssSelector("span.ui-grid-header-cell-label")); + List<WebElement> tableHeaders = driver.findElements(By.cssSelector("span.ui-grid-header-cell-label")); String headerNames = ""; - for (WebElement header : tableHeaders) { + for(WebElement header : tableHeaders) { headerNames += header.getText().toString() + "|"; } - collector.checkThat( - "Paragraph from SparkParagraphIT of testSqlSpark result: ", - headerNames, - CoreMatchers.equalTo("age|job|marital|education|balance|")); + collector.checkThat("Paragraph from SparkParagraphIT of testSqlSpark result: ", + headerNames, CoreMatchers.equalTo("age|job|marital|education|balance|")); } catch (Exception e) { handleException("Exception in SparkParagraphIT while testSqlSpark", e); } } - // @Test +// @Test public void testDep() throws Exception { try { // restart spark interpreter before running %dep clickAndWait(By.xpath("//span[@uib-tooltip='Interpreter binding']")); - clickAndWait( - By.xpath( - "//div[font[contains(text(), 'spark')]]/preceding-sibling::a[@uib-tooltip='Restart']")); + clickAndWait(By.xpath("//div[font[contains(text(), 'spark')]]/preceding-sibling::a[@uib-tooltip='Restart']")); clickAndWait(By.xpath("//button[contains(.,'OK')]")); - setTextOfParagraph(1, "%dep z.load(\"org.apache.commons:commons-csv:1.1\")"); + setTextOfParagraph(1,"%dep z.load(\"org.apache.commons:commons-csv:1.1\")"); runParagraph(1); try { waitForParagraph(1, "FINISHED"); - WebElement paragraph1Result = - driver.findElement(By.xpath(getParagraphXPath(1) + "//div[contains(@id,'_text')]")); - collector.checkThat( - "Paragraph from SparkParagraphIT of testSqlSpark result: ", - paragraph1Result.getText(), - CoreMatchers.containsString( - "res0: org.apache.zeppelin.dep.Dependency = org.apache.zeppelin.dep.Dependency")); + WebElement paragraph1Result = driver.findElement(By.xpath(getParagraphXPath(1) + + "//div[contains(@id,'_text')]")); + collector.checkThat("Paragraph from SparkParagraphIT of testSqlSpark result: ", + paragraph1Result.getText(), CoreMatchers.containsString("res0: org.apache.zeppelin.dep.Dependency = org.apache.zeppelin.dep.Dependency")); setTextOfParagraph(2, "import org.apache.commons.csv.CSVFormat"); runParagraph(2); try { waitForParagraph(2, "FINISHED"); - WebElement paragraph2Result = - driver.findElement(By.xpath(getParagraphXPath(2) + "//div[contains(@id,'_text')]")); - collector.checkThat( - "Paragraph from SparkParagraphIT of testSqlSpark result: ", - paragraph2Result.getText(), - CoreMatchers.equalTo("import org.apache.commons.csv.CSVFormat")); + WebElement paragraph2Result = driver.findElement(By.xpath(getParagraphXPath(2) + + "//div[contains(@id,'_text')]")); + collector.checkThat("Paragraph from SparkParagraphIT of testSqlSpark result: ", + paragraph2Result.getText(), CoreMatchers.equalTo("import org.apache.commons.csv.CSVFormat")); } catch (TimeoutException e) { waitForParagraph(2, "ERROR"); - collector.checkThat( - "Second paragraph from SparkParagraphIT of testDep status: ", - "ERROR", - CoreMatchers.equalTo("FINISHED")); + collector.checkThat("Second paragraph from SparkParagraphIT of testDep status: ", + "ERROR", CoreMatchers.equalTo("FINISHED") + ); } } catch (TimeoutException e) { waitForParagraph(1, "ERROR"); - collector.checkThat( - "First paragraph from SparkParagraphIT of testDep status: ", - "ERROR", - CoreMatchers.equalTo("FINISHED")); + collector.checkThat("First paragraph from SparkParagraphIT of testDep status: ", + "ERROR", CoreMatchers.equalTo("FINISHED") + ); } } catch (Exception e) { handleException("Exception in SparkParagraphIT while testDep", e);
http://git-wip-us.apache.org/repos/asf/zeppelin/blob/0d746fa2/zeppelin-integration/src/test/java/org/apache/zeppelin/integration/ZeppelinIT.java ---------------------------------------------------------------------- diff --git a/zeppelin-integration/src/test/java/org/apache/zeppelin/integration/ZeppelinIT.java b/zeppelin-integration/src/test/java/org/apache/zeppelin/integration/ZeppelinIT.java index a26af43..74c3326 100644 --- a/zeppelin-integration/src/test/java/org/apache/zeppelin/integration/ZeppelinIT.java +++ b/zeppelin-integration/src/test/java/org/apache/zeppelin/integration/ZeppelinIT.java @@ -17,10 +17,6 @@ package org.apache.zeppelin.integration; -import static org.apache.commons.lang3.StringUtils.isNotBlank; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - import org.apache.zeppelin.AbstractZeppelinIT; import org.apache.zeppelin.WebDriverManager; import org.apache.zeppelin.ZeppelinITUtils; @@ -38,19 +34,26 @@ import org.openqa.selenium.WebElement; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import static org.apache.commons.lang3.StringUtils.isNotBlank; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + /** * Test Zeppelin with web browser. * - * <p>To test, ZeppelinServer should be running on port 8080 On OSX, you'll need firefox 42.0 - * installed, then you can run with + * To test, ZeppelinServer should be running on port 8080 + * On OSX, you'll need firefox 42.0 installed, then you can run with + * + * PATH=~/Applications/Firefox.app/Contents/MacOS/:$PATH TEST_SELENIUM="" \ + * mvn -Dtest=org.apache.zeppelin.integration.ZeppelinIT -Denforcer.skip=true \ + * test -pl zeppelin-server * - * <p>PATH=~/Applications/Firefox.app/Contents/MacOS/:$PATH TEST_SELENIUM="" \ mvn - * -Dtest=org.apache.zeppelin.integration.ZeppelinIT -Denforcer.skip=true \ test -pl zeppelin-server */ public class ZeppelinIT extends AbstractZeppelinIT { private static final Logger LOG = LoggerFactory.getLogger(ZeppelinIT.class); - @Rule public ErrorCollector collector = new ErrorCollector(); + @Rule + public ErrorCollector collector = new ErrorCollector(); @Before public void startUp() { @@ -74,15 +77,13 @@ public class ZeppelinIT extends AbstractZeppelinIT { * print angular template * %angular <div id='angularTestButton' ng-click='myVar=myVar+1'>BindingTest_{{myVar}}_</div> */ - setTextOfParagraph( - 1, - "println(\"%angular <div id=\\'angularTestButton\\' ng-click=\\'myVar=myVar+1\\'>BindingTest_{{myVar}}_</div>\")"); + setTextOfParagraph(1, "println(\"%angular <div id=\\'angularTestButton\\' ng-click=\\'myVar=myVar+1\\'>BindingTest_{{myVar}}_</div>\")"); runParagraph(1); waitForParagraph(1, "FINISHED"); // check expected text - waitForText( - "BindingTest__", By.xpath(getParagraphXPath(1) + "//div[@id=\"angularTestButton\"]")); + waitForText("BindingTest__", By.xpath( + getParagraphXPath(1) + "//div[@id=\"angularTestButton\"]")); /* * Bind variable @@ -94,8 +95,9 @@ public class ZeppelinIT extends AbstractZeppelinIT { waitForParagraph(2, "FINISHED"); // check expected text - waitForText( - "BindingTest_1_", By.xpath(getParagraphXPath(1) + "//div[@id=\"angularTestButton\"]")); + waitForText("BindingTest_1_", By.xpath( + getParagraphXPath(1) + "//div[@id=\"angularTestButton\"]")); + /* * print variable @@ -106,20 +108,18 @@ public class ZeppelinIT extends AbstractZeppelinIT { waitForParagraph(3, "FINISHED"); // check expected text - waitForText( - "myVar=1", - By.xpath(getParagraphXPath(3) + "//div[contains(@id,\"_text\") and @class=\"text\"]")); + waitForText("myVar=1", By.xpath( + getParagraphXPath(3) + "//div[contains(@id,\"_text\") and @class=\"text\"]")); /* * Click element */ - driver - .findElement(By.xpath(getParagraphXPath(1) + "//div[@id=\"angularTestButton\"]")) - .click(); + driver.findElement(By.xpath( + getParagraphXPath(1) + "//div[@id=\"angularTestButton\"]")).click(); // check expected text - waitForText( - "BindingTest_2_", By.xpath(getParagraphXPath(1) + "//div[@id=\"angularTestButton\"]")); + waitForText("BindingTest_2_", By.xpath( + getParagraphXPath(1) + "//div[@id=\"angularTestButton\"]")); /* * Register watcher @@ -127,44 +127,40 @@ public class ZeppelinIT extends AbstractZeppelinIT { * z.run(2, context) * } */ - setTextOfParagraph( - 4, - "z.angularWatch(\"myVar\", (before:Object, after:Object, context:org.apache.zeppelin.interpreter.InterpreterContext)=>{ z.run(2, false)})"); + setTextOfParagraph(4, "z.angularWatch(\"myVar\", (before:Object, after:Object, context:org.apache.zeppelin.interpreter.InterpreterContext)=>{ z.run(2, false)})"); runParagraph(4); waitForParagraph(4, "FINISHED"); + /* * Click element, again and see watcher works */ - driver - .findElement(By.xpath(getParagraphXPath(1) + "//div[@id=\"angularTestButton\"]")) - .click(); + driver.findElement(By.xpath( + getParagraphXPath(1) + "//div[@id=\"angularTestButton\"]")).click(); // check expected text - waitForText( - "BindingTest_3_", By.xpath(getParagraphXPath(1) + "//div[@id=\"angularTestButton\"]")); + waitForText("BindingTest_3_", By.xpath( + getParagraphXPath(1) + "//div[@id=\"angularTestButton\"]")); waitForParagraph(3, "FINISHED"); // check expected text by watcher - waitForText( - "myVar=3", - By.xpath(getParagraphXPath(3) + "//div[contains(@id,\"_text\") and @class=\"text\"]")); + waitForText("myVar=3", By.xpath( + getParagraphXPath(3) + "//div[contains(@id,\"_text\") and @class=\"text\"]")); + /* * Click element, again and see watcher still works */ - driver - .findElement(By.xpath(getParagraphXPath(1) + "//div[@id=\"angularTestButton\"]")) - .click(); + driver.findElement(By.xpath( + getParagraphXPath(1) + "//div[@id=\"angularTestButton\"]")).click(); // check expected text - waitForText( - "BindingTest_4_", By.xpath(getParagraphXPath(1) + "//div[@id=\"angularTestButton\"]")); + waitForText("BindingTest_4_", By.xpath( + getParagraphXPath(1) + "//div[@id=\"angularTestButton\"]")); waitForParagraph(3, "FINISHED"); // check expected text by watcher - waitForText( - "myVar=4", - By.xpath(getParagraphXPath(3) + "//div[contains(@id,\"_text\") and @class=\"text\"]")); + waitForText("myVar=4", By.xpath( + getParagraphXPath(3) + "//div[contains(@id,\"_text\") and @class=\"text\"]")); /* * Unbind @@ -175,8 +171,8 @@ public class ZeppelinIT extends AbstractZeppelinIT { waitForParagraph(5, "FINISHED"); // check expected text - waitForText( - "BindingTest__", By.xpath(getParagraphXPath(1) + "//div[@id=\"angularTestButton\"]")); + waitForText("BindingTest__", + By.xpath(getParagraphXPath(1) + "//div[@id=\"angularTestButton\"]")); /* * Bind again and see rebind works. @@ -185,19 +181,14 @@ public class ZeppelinIT extends AbstractZeppelinIT { waitForParagraph(2, "FINISHED"); // check expected text - waitForText( - "BindingTest_1_", By.xpath(getParagraphXPath(1) + "//div[@id=\"angularTestButton\"]")); + waitForText("BindingTest_1_", + By.xpath(getParagraphXPath(1) + "//div[@id=\"angularTestButton\"]")); - driver - .findElement(By.xpath(".//*[@id='main']//button[@ng-click='moveNoteToTrash(note.id)']")) + driver.findElement(By.xpath(".//*[@id='main']//button[@ng-click='moveNoteToTrash(note.id)']")) .sendKeys(Keys.ENTER); ZeppelinITUtils.sleep(1000, false); - driver - .findElement( - By.xpath( - "//div[@class='modal-dialog'][contains(.,'This note will be moved to trash')]" - + "//div[@class='modal-footer']//button[contains(.,'OK')]")) - .click(); + driver.findElement(By.xpath("//div[@class='modal-dialog'][contains(.,'This note will be moved to trash')]" + + "//div[@class='modal-footer']//button[contains(.,'OK')]")).click(); ZeppelinITUtils.sleep(100, false); LOG.info("testCreateNotebook Test executed"); @@ -210,36 +201,28 @@ public class ZeppelinIT extends AbstractZeppelinIT { public void testSparkInterpreterDependencyLoading() throws Exception { try { // navigate to interpreter page - WebElement settingButton = - driver.findElement(By.xpath("//button[@class='nav-btn dropdown-toggle ng-scope']")); + WebElement settingButton = driver.findElement(By.xpath("//button[@class='nav-btn dropdown-toggle ng-scope']")); settingButton.click(); WebElement interpreterLink = driver.findElement(By.xpath("//a[@href='#/interpreter']")); interpreterLink.click(); // add new dependency to spark interpreter - driver - .findElement(By.xpath("//div[@id='spark']//button[contains(.,'edit')]")) - .sendKeys(Keys.ENTER); + driver.findElement(By.xpath("//div[@id='spark']//button[contains(.,'edit')]")).sendKeys(Keys.ENTER); - WebElement depArtifact = - pollingWait( - By.xpath("//input[@ng-model='setting.depArtifact']"), MAX_BROWSER_TIMEOUT_SEC); + WebElement depArtifact = pollingWait(By.xpath("//input[@ng-model='setting.depArtifact']"), + MAX_BROWSER_TIMEOUT_SEC); String artifact = "org.apache.commons:commons-csv:1.1"; depArtifact.sendKeys(artifact); driver.findElement(By.xpath("//div[@id='spark']//form//button[1]")).click(); - clickAndWait( - By.xpath( - "//div[@class='modal-dialog'][contains(.,'Do you want to update this interpreter and restart with new settings?')]" - + "//div[@class='modal-footer']//button[contains(.,'OK')]")); + clickAndWait(By.xpath("//div[@class='modal-dialog'][contains(.,'Do you want to update this interpreter and restart with new settings?')]" + + "//div[@class='modal-footer']//button[contains(.,'OK')]")); try { - clickAndWait( - By.xpath( - "//div[@class='modal-dialog'][contains(.,'Do you want to " - + "update this interpreter and restart with new settings?')]//" - + "div[@class='bootstrap-dialog-close-button']/button")); + clickAndWait(By.xpath("//div[@class='modal-dialog'][contains(.,'Do you want to " + + "update this interpreter and restart with new settings?')]//" + + "div[@class='bootstrap-dialog-close-button']/button")); } catch (TimeoutException | StaleElementReferenceException e) { - // Modal dialog got closed earlier than expected nothing to worry. + //Modal dialog got closed earlier than expected nothing to worry. } driver.navigate().back(); @@ -253,36 +236,29 @@ public class ZeppelinIT extends AbstractZeppelinIT { waitForParagraph(1, "FINISHED"); // check expected text - WebElement paragraph1Result = - driver.findElement(By.xpath(getParagraphXPath(1) + "//div[contains(@id,\"_text\")]")); + WebElement paragraph1Result = driver.findElement(By.xpath( + getParagraphXPath(1) + "//div[contains(@id,\"_text\")]")); - collector.checkThat( - "Paragraph from ZeppelinIT of testSparkInterpreterDependencyLoading result: ", - paragraph1Result.getText().toString(), - CoreMatchers.containsString("import org.apache.commons.csv.CSVFormat")); + collector.checkThat("Paragraph from ZeppelinIT of testSparkInterpreterDependencyLoading result: ", + paragraph1Result.getText().toString(), CoreMatchers.containsString( + "import org.apache.commons.csv.CSVFormat" + ) + ); - // delete created notebook for cleanup. + //delete created notebook for cleanup. deleteTestNotebook(driver); ZeppelinITUtils.sleep(1000, false); // reset dependency settingButton.click(); interpreterLink.click(); - driver - .findElement(By.xpath("//div[@id='spark']//button[contains(.,'edit')]")) - .sendKeys(Keys.ENTER); - WebElement testDepRemoveBtn = - pollingWait( - By.xpath("//tr[descendant::text()[contains(.,'" + artifact + "')]]/td[3]/button"), - MAX_IMPLICIT_WAIT); + driver.findElement(By.xpath("//div[@id='spark']//button[contains(.,'edit')]")).sendKeys(Keys.ENTER); + WebElement testDepRemoveBtn = pollingWait(By.xpath("//tr[descendant::text()[contains(.,'" + + artifact + "')]]/td[3]/button"), MAX_IMPLICIT_WAIT); testDepRemoveBtn.sendKeys(Keys.ENTER); driver.findElement(By.xpath("//div[@id='spark']//form//button[1]")).click(); - driver - .findElement( - By.xpath( - "//div[@class='modal-dialog'][contains(.,'Do you want to update this interpreter and restart with new settings?')]" - + "//div[@class='modal-footer']//button[contains(.,'OK')]")) - .click(); + driver.findElement(By.xpath("//div[@class='modal-dialog'][contains(.,'Do you want to update this interpreter and restart with new settings?')]" + + "//div[@class='modal-footer']//button[contains(.,'OK')]")).click(); } catch (Exception e) { handleException("Exception in ZeppelinIT while testSparkInterpreterDependencyLoading ", e); } @@ -297,13 +273,12 @@ public class ZeppelinIT extends AbstractZeppelinIT { waitForParagraph(1, "READY"); // Create 1st paragraph - setTextOfParagraph( - 1, "%angular <div id=\\'angularRunParagraph\\'>Run second paragraph</div>"); + setTextOfParagraph(1, + "%angular <div id=\\'angularRunParagraph\\'>Run second paragraph</div>"); runParagraph(1); waitForParagraph(1, "FINISHED"); - waitForText( - "Run second paragraph", - By.xpath(getParagraphXPath(1) + "//div[@id=\"angularRunParagraph\"]")); + waitForText("Run second paragraph", By.xpath( + getParagraphXPath(1) + "//div[@id=\"angularRunParagraph\"]")); // Create 2nd paragraph setTextOfParagraph(2, "%sh echo TEST"); @@ -311,22 +286,17 @@ public class ZeppelinIT extends AbstractZeppelinIT { waitForParagraph(2, "FINISHED"); // Get 2nd paragraph id - final String secondParagraphId = - driver - .findElement( - By.xpath( - getParagraphXPath(2) - + "//div[@class=\"control ng-scope\"]//ul[@class=\"dropdown-menu dropdown-menu-right\"]/li[1]")) + final String secondParagraphId = driver.findElement(By.xpath(getParagraphXPath(2) + + "//div[@class=\"control ng-scope\"]//ul[@class=\"dropdown-menu dropdown-menu-right\"]/li[1]")) .getAttribute("textContent"); assertTrue("Cannot find paragraph id for the 2nd paragraph", isNotBlank(secondParagraphId)); // Update first paragraph to call z.runParagraph() with 2nd paragraph id - setTextOfParagraph( - 1, - "%angular <div id=\\'angularRunParagraph\\' ng-click=\\'z.runParagraph(\"" - + secondParagraphId.trim() - + "\")\\'>Run second paragraph</div>"); + setTextOfParagraph(1, + "%angular <div id=\\'angularRunParagraph\\' ng-click=\\'z.runParagraph(\"" + + secondParagraphId.trim() + + "\")\\'>Run second paragraph</div>"); runParagraph(1); waitForParagraph(1, "FINISHED"); @@ -334,24 +304,23 @@ public class ZeppelinIT extends AbstractZeppelinIT { setTextOfParagraph(2, "%sh echo NEW_VALUE"); // Click on 1 paragraph to trigger z.runParagraph() function - driver - .findElement(By.xpath(getParagraphXPath(1) + "//div[@id=\"angularRunParagraph\"]")) - .click(); + driver.findElement(By.xpath( + getParagraphXPath(1) + "//div[@id=\"angularRunParagraph\"]")).click(); waitForParagraph(2, "FINISHED"); // Check that 2nd paragraph has been executed - waitForText( - "NEW_VALUE", - By.xpath(getParagraphXPath(2) + "//div[contains(@id,\"_text\") and @class=\"text\"]")); + waitForText("NEW_VALUE", By.xpath( + getParagraphXPath(2) + "//div[contains(@id,\"_text\") and @class=\"text\"]")); - // delete created notebook for cleanup. + //delete created notebook for cleanup. deleteTestNotebook(driver); ZeppelinITUtils.sleep(1000, false); LOG.info("testAngularRunParagraph Test executed"); - } catch (Exception e) { + } catch (Exception e) { handleException("Exception in ZeppelinIT while testAngularRunParagraph", e); } + } } http://git-wip-us.apache.org/repos/asf/zeppelin/blob/0d746fa2/zeppelin-interpreter/pom.xml ---------------------------------------------------------------------- diff --git a/zeppelin-interpreter/pom.xml b/zeppelin-interpreter/pom.xml index 38259c7..4ee1080 100644 --- a/zeppelin-interpreter/pom.xml +++ b/zeppelin-interpreter/pom.xml @@ -248,6 +248,14 @@ <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-checkstyle-plugin</artifactId> + <configuration> + <skip>false</skip> + </configuration> + </plugin> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> </plugin> </plugins> http://git-wip-us.apache.org/repos/asf/zeppelin/blob/0d746fa2/zeppelin-interpreter/src/main/java/org/apache/zeppelin/annotation/Experimental.java ---------------------------------------------------------------------- diff --git a/zeppelin-interpreter/src/main/java/org/apache/zeppelin/annotation/Experimental.java b/zeppelin-interpreter/src/main/java/org/apache/zeppelin/annotation/Experimental.java index ffb4067..c21ea43 100644 --- a/zeppelin-interpreter/src/main/java/org/apache/zeppelin/annotation/Experimental.java +++ b/zeppelin-interpreter/src/main/java/org/apache/zeppelin/annotation/Experimental.java @@ -21,15 +21,12 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; -/** Experimental API Might change or be removed at anytime, or be adopted as ZeppelinApi */ +/** + * Experimental API + * Might change or be removed at anytime, or be adopted as ZeppelinApi + */ @Retention(RetentionPolicy.RUNTIME) -@Target({ - ElementType.TYPE, - ElementType.FIELD, - ElementType.METHOD, - ElementType.PARAMETER, - ElementType.CONSTRUCTOR, - ElementType.LOCAL_VARIABLE, - ElementType.PACKAGE -}) -public @interface Experimental {} +@Target({ElementType.TYPE, ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER, + ElementType.CONSTRUCTOR, ElementType.LOCAL_VARIABLE, ElementType.PACKAGE}) +public @interface Experimental { +} http://git-wip-us.apache.org/repos/asf/zeppelin/blob/0d746fa2/zeppelin-interpreter/src/main/java/org/apache/zeppelin/annotation/ZeppelinApi.java ---------------------------------------------------------------------- diff --git a/zeppelin-interpreter/src/main/java/org/apache/zeppelin/annotation/ZeppelinApi.java b/zeppelin-interpreter/src/main/java/org/apache/zeppelin/annotation/ZeppelinApi.java index d41be51..e4a45ee 100644 --- a/zeppelin-interpreter/src/main/java/org/apache/zeppelin/annotation/ZeppelinApi.java +++ b/zeppelin-interpreter/src/main/java/org/apache/zeppelin/annotation/ZeppelinApi.java @@ -21,15 +21,11 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; -/** APIs exposed to extends pluggable components or exposed to enduser */ +/** + * APIs exposed to extends pluggable components or exposed to enduser + */ @Retention(RetentionPolicy.RUNTIME) -@Target({ - ElementType.TYPE, - ElementType.FIELD, - ElementType.METHOD, - ElementType.PARAMETER, - ElementType.CONSTRUCTOR, - ElementType.LOCAL_VARIABLE, - ElementType.PACKAGE -}) -public @interface ZeppelinApi {} +@Target({ElementType.TYPE, ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER, + ElementType.CONSTRUCTOR, ElementType.LOCAL_VARIABLE, ElementType.PACKAGE}) +public @interface ZeppelinApi { +} http://git-wip-us.apache.org/repos/asf/zeppelin/blob/0d746fa2/zeppelin-interpreter/src/main/java/org/apache/zeppelin/common/JsonSerializable.java ---------------------------------------------------------------------- diff --git a/zeppelin-interpreter/src/main/java/org/apache/zeppelin/common/JsonSerializable.java b/zeppelin-interpreter/src/main/java/org/apache/zeppelin/common/JsonSerializable.java index d932abf..7764138 100644 --- a/zeppelin-interpreter/src/main/java/org/apache/zeppelin/common/JsonSerializable.java +++ b/zeppelin-interpreter/src/main/java/org/apache/zeppelin/common/JsonSerializable.java @@ -17,7 +17,9 @@ package org.apache.zeppelin.common; -/** Interface for class that can be serialized to json */ +/** + * Interface for class that can be serialized to json + */ public interface JsonSerializable { String toJson(); http://git-wip-us.apache.org/repos/asf/zeppelin/blob/0d746fa2/zeppelin-interpreter/src/main/java/org/apache/zeppelin/completer/CachedCompleter.java ---------------------------------------------------------------------- diff --git a/zeppelin-interpreter/src/main/java/org/apache/zeppelin/completer/CachedCompleter.java b/zeppelin-interpreter/src/main/java/org/apache/zeppelin/completer/CachedCompleter.java index af738db..ef2223e 100644 --- a/zeppelin-interpreter/src/main/java/org/apache/zeppelin/completer/CachedCompleter.java +++ b/zeppelin-interpreter/src/main/java/org/apache/zeppelin/completer/CachedCompleter.java @@ -5,18 +5,20 @@ * "License"); you may not use this file except in compliance with the License. You may obtain a * copy of the License at * - * <p>http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * - * <p>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. + * 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.completer; import jline.console.completer.Completer; -/** Completer with time to live */ +/** + * Completer with time to live + */ public class CachedCompleter { private Completer completer; private int ttlInSeconds; @@ -29,8 +31,8 @@ public class CachedCompleter { } public boolean isExpired() { - if (ttlInSeconds == -1 - || (ttlInSeconds > 0 && (System.currentTimeMillis() - createdAt) / 1000 > ttlInSeconds)) { + if (ttlInSeconds == -1 || (ttlInSeconds > 0 && + (System.currentTimeMillis() - createdAt) / 1000 > ttlInSeconds)) { return true; } return false; http://git-wip-us.apache.org/repos/asf/zeppelin/blob/0d746fa2/zeppelin-interpreter/src/main/java/org/apache/zeppelin/completer/CompletionType.java ---------------------------------------------------------------------- diff --git a/zeppelin-interpreter/src/main/java/org/apache/zeppelin/completer/CompletionType.java b/zeppelin-interpreter/src/main/java/org/apache/zeppelin/completer/CompletionType.java index 67fd069..fc5f380 100644 --- a/zeppelin-interpreter/src/main/java/org/apache/zeppelin/completer/CompletionType.java +++ b/zeppelin-interpreter/src/main/java/org/apache/zeppelin/completer/CompletionType.java @@ -5,16 +5,18 @@ * "License"); you may not use this file except in compliance with the License. You may obtain a * copy of the License at * - * <p>http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * - * <p>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. + * 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.completer; -/** Types of completion */ +/** + * Types of completion + */ public enum CompletionType { schema, table, http://git-wip-us.apache.org/repos/asf/zeppelin/blob/0d746fa2/zeppelin-interpreter/src/main/java/org/apache/zeppelin/completer/StringsCompleter.java ---------------------------------------------------------------------- diff --git a/zeppelin-interpreter/src/main/java/org/apache/zeppelin/completer/StringsCompleter.java b/zeppelin-interpreter/src/main/java/org/apache/zeppelin/completer/StringsCompleter.java index 63868cd..c117441 100644 --- a/zeppelin-interpreter/src/main/java/org/apache/zeppelin/completer/StringsCompleter.java +++ b/zeppelin-interpreter/src/main/java/org/apache/zeppelin/completer/StringsCompleter.java @@ -5,12 +5,12 @@ * "License"); you may not use this file except in compliance with the License. You may obtain a * copy of the License at * - * <p>http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * - * <p>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. + * 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.completer; @@ -20,21 +20,23 @@ import java.util.List; import java.util.Set; import java.util.SortedSet; import java.util.TreeSet; + import jline.console.completer.Completer; import jline.internal.Preconditions; -/** Case-insensitive completer for a set of strings. */ +/** + * Case-insensitive completer for a set of strings. + */ public class StringsCompleter implements Completer { - private final SortedSet<String> strings = - new TreeSet<String>( - new Comparator<String>() { - @Override - public int compare(String o1, String o2) { - return o1.compareToIgnoreCase(o2); - } - }); + private final SortedSet<String> strings = new TreeSet<String>(new Comparator<String>() { + @Override + public int compare(String o1, String o2) { + return o1.compareToIgnoreCase(o2); + } + }); - public StringsCompleter() {} + public StringsCompleter() { + } public StringsCompleter(final Collection<String> strings) { Preconditions.checkNotNull(strings); @@ -53,8 +55,8 @@ public class StringsCompleter implements Completer { return completeCollection(buffer, cursor, candidates); } - private int completeCollection( - final String buffer, final int cursor, final Collection<CharSequence> candidates) { + private int completeCollection(final String buffer, final int cursor, + final Collection<CharSequence> candidates) { Preconditions.checkNotNull(candidates); if (buffer == null) { candidates.addAll(strings); http://git-wip-us.apache.org/repos/asf/zeppelin/blob/0d746fa2/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 2fcf60d..2b2f3b6 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 @@ -24,6 +24,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.function.Predicate; + import org.apache.commons.configuration.ConfigurationException; import org.apache.commons.configuration.XMLConfiguration; import org.apache.commons.configuration.tree.ConfigurationNode; @@ -32,7 +33,10 @@ import org.apache.zeppelin.util.Util; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -/** Zeppelin configuration. */ +/** + * Zeppelin configuration. + * + */ public class ZeppelinConfiguration extends XMLConfiguration { private static final String ZEPPELIN_SITE_XML = "zeppelin-site.xml"; private static final long serialVersionUID = 4749305895693848035L; @@ -64,6 +68,7 @@ public class ZeppelinConfiguration extends XMLConfiguration { } } + public ZeppelinConfiguration() { ConfVars[] vars = ConfVars.values(); for (ConfVars v : vars) { @@ -81,11 +86,13 @@ public class ZeppelinConfiguration extends XMLConfiguration { throw new RuntimeException("Unsupported VarType"); } } + } + /** - * Load from resource. url = ZeppelinConfiguration.class.getResource(ZEPPELIN_SITE_XML); - * + * Load from resource. + *url = ZeppelinConfiguration.class.getResource(ZEPPELIN_SITE_XML); * @throws ConfigurationException */ public static synchronized ZeppelinConfiguration create() { @@ -132,6 +139,7 @@ public class ZeppelinConfiguration extends XMLConfiguration { return conf; } + private String getStringValue(String name, String d) { String value = this.properties.get(name); if (value != null) { @@ -279,7 +287,10 @@ public class ZeppelinConfiguration extends XMLConfiguration { if (path != null && path.startsWith("/") || isWindowsPath(path)) { return path; } else { - return getRelativeDir(String.format("%s/%s", getConfDir(), path)); + return getRelativeDir( + String.format("%s/%s", + getConfDir(), + path)); } } @@ -308,7 +319,10 @@ public class ZeppelinConfiguration extends XMLConfiguration { if (path != null && path.startsWith("/") || isWindowsPath(path)) { return path; } else { - return getRelativeDir(String.format("%s/%s", getConfDir(), path)); + return getRelativeDir( + String.format("%s/%s", + getConfDir(), + path)); } } @@ -351,8 +365,8 @@ public class ZeppelinConfiguration extends XMLConfiguration { } public boolean isRecoveryEnabled() { - return !getString(ConfVars.ZEPPELIN_RECOVERY_STORAGE_CLASS) - .equals("org.apache.zeppelin.interpreter.recovery.NullRecoveryStorage"); + return !getString(ConfVars.ZEPPELIN_RECOVERY_STORAGE_CLASS).equals( + "org.apache.zeppelin.interpreter.recovery.NullRecoveryStorage"); } public String getGCSStorageDir() { @@ -500,7 +514,7 @@ public class ZeppelinConfiguration extends XMLConfiguration { return getString(ConfVars.ZEPPELIN_INTERPRETER_RPC_PORTRANGE); } - public boolean isWindowsPath(String path) { + public boolean isWindowsPath(String path){ return path.matches("^[A-Za-z]:\\\\.*"); } @@ -523,15 +537,12 @@ public class ZeppelinConfiguration extends XMLConfiguration { public String getConfigFSDir() { String fsConfigDir = getString(ConfVars.ZEPPELIN_CONFIG_FS_DIR); if (StringUtils.isBlank(fsConfigDir)) { - LOG.warn( - ConfVars.ZEPPELIN_CONFIG_FS_DIR.varName - + " is not specified, fall back to local " - + "conf directory " - + ConfVars.ZEPPELIN_CONF_DIR.varName); + LOG.warn(ConfVars.ZEPPELIN_CONFIG_FS_DIR.varName + " is not specified, fall back to local " + + "conf directory " + ConfVars.ZEPPELIN_CONF_DIR.varName); return getConfDir(); } if (getString(ConfVars.ZEPPELIN_CONFIG_STORAGE_CLASS) - .equals("org.apache.zeppelin.storage.LocalConfigStorage")) { + .equals("org.apache.zeppelin.storage.LocalConfigStorage")) { // only apply getRelativeDir when it is LocalConfigStorage return getRelativeDir(fsConfigDir); } else { @@ -539,7 +550,8 @@ public class ZeppelinConfiguration extends XMLConfiguration { } } - public List<String> getAllowedOrigins() { + public List<String> getAllowedOrigins() + { if (getString(ConfVars.ZEPPELIN_ALLOWED_ORIGINS).isEmpty()) { return Arrays.asList(new String[0]); } @@ -563,6 +575,7 @@ public class ZeppelinConfiguration extends XMLConfiguration { return getBoolean(ConfVars.ZEPPELIN_SERVER_AUTHORIZATION_HEADER_CLEAR); } + public String getXFrameOptions() { return getString(ConfVars.ZEPPELIN_SERVER_XFRAME_OPTIONS); } @@ -580,15 +593,15 @@ public class ZeppelinConfiguration extends XMLConfiguration { } public String getZeppelinNotebookGitURL() { - return getString(ConfVars.ZEPPELIN_NOTEBOOK_GIT_REMOTE_URL); + return getString(ConfVars.ZEPPELIN_NOTEBOOK_GIT_REMOTE_URL); } public String getZeppelinNotebookGitUsername() { - return getString(ConfVars.ZEPPELIN_NOTEBOOK_GIT_REMOTE_USERNAME); + return getString(ConfVars.ZEPPELIN_NOTEBOOK_GIT_REMOTE_USERNAME); } public String getZeppelinNotebookGitAccessToken() { - return getString(ConfVars.ZEPPELIN_NOTEBOOK_GIT_REMOTE_ACCESS_TOKEN); + return getString(ConfVars.ZEPPELIN_NOTEBOOK_GIT_REMOTE_ACCESS_TOKEN); } public String getZeppelinNotebookGitRemoteOrigin() { @@ -658,7 +671,9 @@ public class ZeppelinConfiguration extends XMLConfiguration { return properties; } - /** Wrapper class. */ + /** + * Wrapper class. + */ public enum ConfVars { ZEPPELIN_HOME("zeppelin.home", "./"), ZEPPELIN_ADDR("zeppelin.server.addr", "0.0.0.0"), @@ -680,8 +695,8 @@ public class ZeppelinConfiguration extends XMLConfiguration { ZEPPELIN_INTERPRETER_JSON("zeppelin.interpreter.setting", "interpreter-setting.json"), ZEPPELIN_INTERPRETER_DIR("zeppelin.interpreter.dir", "interpreter"), ZEPPELIN_INTERPRETER_LOCALREPO("zeppelin.interpreter.localRepo", "local-repo"), - ZEPPELIN_INTERPRETER_DEP_MVNREPO( - "zeppelin.interpreter.dep.mvnRepo", "http://repo1.maven.org/maven2/"), + ZEPPELIN_INTERPRETER_DEP_MVNREPO("zeppelin.interpreter.dep.mvnRepo", + "http://repo1.maven.org/maven2/"), ZEPPELIN_INTERPRETER_CONNECT_TIMEOUT("zeppelin.interpreter.connect.timeout", 60000), ZEPPELIN_INTERPRETER_MAX_POOL_SIZE("zeppelin.interpreter.max.poolsize", 10), ZEPPELIN_INTERPRETER_GROUP_DEFAULT("zeppelin.interpreter.group.default", "spark"), @@ -689,8 +704,7 @@ public class ZeppelinConfiguration extends XMLConfiguration { ZEPPELIN_ENCODING("zeppelin.encoding", "UTF-8"), ZEPPELIN_NOTEBOOK_DIR("zeppelin.notebook.dir", "notebook"), ZEPPELIN_RECOVERY_DIR("zeppelin.recovery.dir", "recovery"), - ZEPPELIN_RECOVERY_STORAGE_CLASS( - "zeppelin.recovery.storage.class", + ZEPPELIN_RECOVERY_STORAGE_CLASS("zeppelin.recovery.storage.class", "org.apache.zeppelin.interpreter.recovery.NullRecoveryStorage"), ZEPPELIN_PLUGINS_DIR("zeppelin.plugins.dir", "plugins"), @@ -715,31 +729,28 @@ public class ZeppelinConfiguration extends XMLConfiguration { ZEPPELIN_NOTEBOOK_MONGO_COLLECTION("zeppelin.notebook.mongo.collection", "notes"), ZEPPELIN_NOTEBOOK_MONGO_URI("zeppelin.notebook.mongo.uri", "mongodb://localhost"), ZEPPELIN_NOTEBOOK_MONGO_AUTOIMPORT("zeppelin.notebook.mongo.autoimport", false), - ZEPPELIN_NOTEBOOK_STORAGE( - "zeppelin.notebook.storage", "org.apache.zeppelin.notebook.repo.GitNotebookRepo"), + ZEPPELIN_NOTEBOOK_STORAGE("zeppelin.notebook.storage", + "org.apache.zeppelin.notebook.repo.GitNotebookRepo"), ZEPPELIN_NOTEBOOK_ONE_WAY_SYNC("zeppelin.notebook.one.way.sync", false), // whether by default note is public or private ZEPPELIN_NOTEBOOK_PUBLIC("zeppelin.notebook.public", true), - ZEPPELIN_INTERPRETER_REMOTE_RUNNER( - "zeppelin.interpreter.remoterunner", - System.getProperty("os.name").startsWith("Windows") - ? "bin/interpreter.cmd" - : "bin/interpreter.sh"), + ZEPPELIN_INTERPRETER_REMOTE_RUNNER("zeppelin.interpreter.remoterunner", + System.getProperty("os.name") + .startsWith("Windows") ? "bin/interpreter.cmd" : "bin/interpreter.sh"), // Decide when new note is created, interpreter settings will be binded automatically or not. ZEPPELIN_NOTEBOOK_AUTO_INTERPRETER_BINDING("zeppelin.notebook.autoInterpreterBinding", true), ZEPPELIN_CONF_DIR("zeppelin.conf.dir", "conf"), ZEPPELIN_CONFIG_FS_DIR("zeppelin.config.fs.dir", ""), - ZEPPELIN_CONFIG_STORAGE_CLASS( - "zeppelin.config.storage.class", "org.apache.zeppelin.storage.LocalConfigStorage"), + ZEPPELIN_CONFIG_STORAGE_CLASS("zeppelin.config.storage.class", + "org.apache.zeppelin.storage.LocalConfigStorage"), ZEPPELIN_DEP_LOCALREPO("zeppelin.dep.localrepo", "local-repo"), ZEPPELIN_HELIUM_REGISTRY("zeppelin.helium.registry", "helium," + HELIUM_PACKAGE_DEFAULT_URL), - ZEPPELIN_HELIUM_NODE_INSTALLER_URL( - "zeppelin.helium.node.installer.url", "https://nodejs.org/dist/"), - ZEPPELIN_HELIUM_NPM_INSTALLER_URL( - "zeppelin.helium.npm.installer.url", "http://registry.npmjs.org/"), - ZEPPELIN_HELIUM_YARNPKG_INSTALLER_URL( - "zeppelin.helium.yarnpkg.installer.url", - "https://github.com/yarnpkg/yarn/releases/download/"), + ZEPPELIN_HELIUM_NODE_INSTALLER_URL("zeppelin.helium.node.installer.url", + "https://nodejs.org/dist/"), + ZEPPELIN_HELIUM_NPM_INSTALLER_URL("zeppelin.helium.npm.installer.url", + "http://registry.npmjs.org/"), + ZEPPELIN_HELIUM_YARNPKG_INSTALLER_URL("zeppelin.helium.yarnpkg.installer.url", + "https://github.com/yarnpkg/yarn/releases/download/"), // Allows a way to specify a ',' separated list of allowed origins for rest and websockets // i.e. http://localhost:8080 ZEPPELIN_ALLOWED_ORIGINS("zeppelin.server.allowed.origins", "*"), @@ -762,8 +773,7 @@ public class ZeppelinConfiguration extends XMLConfiguration { ZEPPELIN_SERVER_RPC_PORTRANGE("zeppelin.server.rpc.portRange", ":"), ZEPPELIN_INTERPRETER_RPC_PORTRANGE("zeppelin.interpreter.rpc.portRange", ":"), - ZEPPELIN_INTERPRETER_LIFECYCLE_MANAGER_CLASS( - "zeppelin.interpreter.lifecyclemanager.class", + ZEPPELIN_INTERPRETER_LIFECYCLE_MANAGER_CLASS("zeppelin.interpreter.lifecyclemanager.class", "org.apache.zeppelin.interpreter.lifecycle.NullLifecycleManager"), ZEPPELIN_INTERPRETER_LIFECYCLE_MANAGER_TIMEOUT_CHECK_INTERVAL( "zeppelin.interpreter.lifecyclemanager.timeout.checkinterval", 6000L), @@ -776,8 +786,8 @@ public class ZeppelinConfiguration extends XMLConfiguration { ZEPPELIN_NOTEBOOK_GIT_REMOTE_USERNAME("zeppelin.notebook.git.remote.username", "token"), ZEPPELIN_NOTEBOOK_GIT_REMOTE_ACCESS_TOKEN("zeppelin.notebook.git.remote.access-token", ""), ZEPPELIN_NOTEBOOK_GIT_REMOTE_ORIGIN("zeppelin.notebook.git.remote.origin", "origin"), - ZEPPELIN_NOTEBOOK_COLLABORATIVE_MODE_ENABLE( - "zeppelin.notebook.collaborative.mode.enable", true), + ZEPPELIN_NOTEBOOK_COLLABORATIVE_MODE_ENABLE("zeppelin.notebook.collaborative.mode.enable", + true), ZEPPELIN_NOTEBOOK_CRON_ENABLE("zeppelin.notebook.cron.enable", false), ZEPPELIN_NOTEBOOK_CRON_FOLDERS("zeppelin.notebook.cron.folders", null), ZEPPELIN_PROXY_URL("zeppelin.proxy.url", null), @@ -787,10 +797,8 @@ public class ZeppelinConfiguration extends XMLConfiguration { ZEPPELIN_SEARCH_TEMP_PATH("zeppelin.search.temp.path", System.getProperty("java.io.tmpdir")); private String varName; - @SuppressWarnings("rawtypes") private Class varClass; - private String stringValue; private VarType type; private int intValue; @@ -798,6 +806,7 @@ public class ZeppelinConfiguration extends XMLConfiguration { private boolean booleanValue; private long longValue; + ConfVars(String varName, String varValue) { this.varName = varName; this.varClass = String.class; http://git-wip-us.apache.org/repos/asf/zeppelin/blob/0d746fa2/zeppelin-interpreter/src/main/java/org/apache/zeppelin/dep/AbstractDependencyResolver.java ---------------------------------------------------------------------- diff --git a/zeppelin-interpreter/src/main/java/org/apache/zeppelin/dep/AbstractDependencyResolver.java b/zeppelin-interpreter/src/main/java/org/apache/zeppelin/dep/AbstractDependencyResolver.java index cbe8b4a..0de790a 100644 --- a/zeppelin-interpreter/src/main/java/org/apache/zeppelin/dep/AbstractDependencyResolver.java +++ b/zeppelin-interpreter/src/main/java/org/apache/zeppelin/dep/AbstractDependencyResolver.java @@ -22,6 +22,7 @@ import java.util.Collection; import java.util.Iterator; import java.util.LinkedList; import java.util.List; + import org.sonatype.aether.RepositorySystem; import org.sonatype.aether.RepositorySystemSession; import org.sonatype.aether.repository.Authentication; @@ -30,12 +31,15 @@ import org.sonatype.aether.repository.RemoteRepository; import org.sonatype.aether.repository.RepositoryPolicy; import org.sonatype.aether.resolution.ArtifactResult; -/** Abstract dependency resolver. Add new dependencies from mvn repo (at runtime) Zeppelin. */ +/** + * Abstract dependency resolver. + * Add new dependencies from mvn repo (at runtime) Zeppelin. + */ public abstract class AbstractDependencyResolver { protected RepositorySystem system = Booter.newRepositorySystem(); protected List<RemoteRepository> repos = new LinkedList<>(); protected RepositorySystemSession session; - + public AbstractDependencyResolver(String localRepoPath) { session = Booter.newRepositorySystemSession(system, localRepoPath); repos.add(Booter.newCentralRepository()); // add maven central @@ -55,15 +59,15 @@ public abstract class AbstractDependencyResolver { public List<RemoteRepository> getRepos() { return this.repos; } - + public void addRepo(String id, String url, boolean snapshot) { synchronized (repos) { delRepo(id); RemoteRepository rr = new RemoteRepository(id, "default", url); - rr.setPolicy( - snapshot, - new RepositoryPolicy( - true, RepositoryPolicy.UPDATE_POLICY_DAILY, RepositoryPolicy.CHECKSUM_POLICY_WARN)); + rr.setPolicy(snapshot, new RepositoryPolicy( + true, + RepositoryPolicy.UPDATE_POLICY_DAILY, + RepositoryPolicy.CHECKSUM_POLICY_WARN)); repos.add(rr); } } @@ -72,10 +76,10 @@ public abstract class AbstractDependencyResolver { synchronized (repos) { delRepo(id); RemoteRepository rr = new RemoteRepository(id, "default", url); - rr.setPolicy( - snapshot, - new RepositoryPolicy( - true, RepositoryPolicy.UPDATE_POLICY_DAILY, RepositoryPolicy.CHECKSUM_POLICY_WARN)); + rr.setPolicy(snapshot, new RepositoryPolicy( + true, + RepositoryPolicy.UPDATE_POLICY_DAILY, + RepositoryPolicy.CHECKSUM_POLICY_WARN)); rr.setAuthentication(auth); rr.setProxy(proxy); repos.add(rr); @@ -96,6 +100,6 @@ public abstract class AbstractDependencyResolver { return null; } - public abstract List<ArtifactResult> getArtifactsWithDep( - String dependency, Collection<String> excludes) throws Exception; + public abstract List<ArtifactResult> getArtifactsWithDep(String dependency, + Collection<String> excludes) throws Exception; } http://git-wip-us.apache.org/repos/asf/zeppelin/blob/0d746fa2/zeppelin-interpreter/src/main/java/org/apache/zeppelin/dep/Booter.java ---------------------------------------------------------------------- diff --git a/zeppelin-interpreter/src/main/java/org/apache/zeppelin/dep/Booter.java b/zeppelin-interpreter/src/main/java/org/apache/zeppelin/dep/Booter.java index e109cbe..6339a4f 100644 --- a/zeppelin-interpreter/src/main/java/org/apache/zeppelin/dep/Booter.java +++ b/zeppelin-interpreter/src/main/java/org/apache/zeppelin/dep/Booter.java @@ -17,7 +17,6 @@ package org.apache.zeppelin.dep; -import java.nio.file.Paths; import org.apache.commons.lang.Validate; import org.apache.maven.repository.internal.MavenRepositorySystemSession; import org.slf4j.Logger; @@ -27,7 +26,11 @@ import org.sonatype.aether.RepositorySystemSession; import org.sonatype.aether.repository.LocalRepository; import org.sonatype.aether.repository.RemoteRepository; -/** Manage mvn repository. */ +import java.nio.file.Paths; + +/** + * Manage mvn repository. + */ public class Booter { private static Logger logger = LoggerFactory.getLogger(Booter.class); @@ -81,7 +84,7 @@ public class Booter { } public static RemoteRepository newLocalRepository() { - return new RemoteRepository( - "local", "default", "file://" + System.getProperty("user.home") + "/.m2/repository"); + return new RemoteRepository("local", + "default", "file://" + System.getProperty("user.home") + "/.m2/repository"); } } http://git-wip-us.apache.org/repos/asf/zeppelin/blob/0d746fa2/zeppelin-interpreter/src/main/java/org/apache/zeppelin/dep/Dependency.java ---------------------------------------------------------------------- diff --git a/zeppelin-interpreter/src/main/java/org/apache/zeppelin/dep/Dependency.java b/zeppelin-interpreter/src/main/java/org/apache/zeppelin/dep/Dependency.java index cc9f446..eec6592 100644 --- a/zeppelin-interpreter/src/main/java/org/apache/zeppelin/dep/Dependency.java +++ b/zeppelin-interpreter/src/main/java/org/apache/zeppelin/dep/Dependency.java @@ -20,12 +20,15 @@ package org.apache.zeppelin.dep; import java.util.LinkedList; import java.util.List; -/** */ +/** + * + */ public class Dependency { private String groupArtifactVersion; private boolean local = false; private List<String> exclusions; + public Dependency(String groupArtifactVersion) { this.groupArtifactVersion = groupArtifactVersion; exclusions = new LinkedList<>(); @@ -42,7 +45,6 @@ public class Dependency { /** * Don't add artifact into SparkContext (sc.addJar()) - * * @return */ public Dependency local() { @@ -56,6 +58,7 @@ public class Dependency { } /** + * * @param exclusions comma or newline separated list of "groupId:ArtifactId" * @return */ @@ -67,6 +70,7 @@ public class Dependency { return this; } + public String getGroupArtifactVersion() { return groupArtifactVersion; } http://git-wip-us.apache.org/repos/asf/zeppelin/blob/0d746fa2/zeppelin-interpreter/src/main/java/org/apache/zeppelin/dep/DependencyContext.java ---------------------------------------------------------------------- diff --git a/zeppelin-interpreter/src/main/java/org/apache/zeppelin/dep/DependencyContext.java b/zeppelin-interpreter/src/main/java/org/apache/zeppelin/dep/DependencyContext.java index f185808..9bac9e4 100644 --- a/zeppelin-interpreter/src/main/java/org/apache/zeppelin/dep/DependencyContext.java +++ b/zeppelin-interpreter/src/main/java/org/apache/zeppelin/dep/DependencyContext.java @@ -21,6 +21,7 @@ import java.io.File; import java.net.MalformedURLException; import java.util.LinkedList; import java.util.List; + import org.sonatype.aether.RepositorySystem; import org.sonatype.aether.RepositorySystemSession; import org.sonatype.aether.artifact.Artifact; @@ -36,7 +37,10 @@ import org.sonatype.aether.util.artifact.JavaScopes; import org.sonatype.aether.util.filter.DependencyFilterUtils; import org.sonatype.aether.util.filter.PatternExclusionsDependencyFilter; -/** */ + +/** + * + */ public class DependencyContext { List<Dependency> dependencies = new LinkedList<>(); List<Repository> repositories = new LinkedList<>(); @@ -76,16 +80,16 @@ public class DependencyContext { filesDist = new LinkedList<>(); } + /** * fetch all artifacts - * * @return * @throws MalformedURLException * @throws ArtifactResolutionException * @throws DependencyResolutionException */ - public List<File> fetch() - throws MalformedURLException, DependencyResolutionException, ArtifactResolutionException { + public List<File> fetch() throws MalformedURLException, + DependencyResolutionException, ArtifactResolutionException { for (Dependency dep : dependencies) { if (!dep.isLocalFsArtifact()) { @@ -111,12 +115,14 @@ public class DependencyContext { throws DependencyResolutionException, ArtifactResolutionException { Artifact artifact = new DefaultArtifact(dep.getGroupArtifactVersion()); - DependencyFilter classpathFilter = DependencyFilterUtils.classpathFilter(JavaScopes.COMPILE); - PatternExclusionsDependencyFilter exclusionFilter = - new PatternExclusionsDependencyFilter(dep.getExclusions()); + DependencyFilter classpathFilter = DependencyFilterUtils + .classpathFilter(JavaScopes.COMPILE); + PatternExclusionsDependencyFilter exclusionFilter = new PatternExclusionsDependencyFilter( + dep.getExclusions()); CollectRequest collectRequest = new CollectRequest(); - collectRequest.setRoot(new org.sonatype.aether.graph.Dependency(artifact, JavaScopes.COMPILE)); + collectRequest.setRoot(new org.sonatype.aether.graph.Dependency(artifact, + JavaScopes.COMPILE)); collectRequest.addRepository(mavenCentral); collectRequest.addRepository(mavenLocal); @@ -126,9 +132,8 @@ public class DependencyContext { collectRequest.addRepository(rr); } - DependencyRequest dependencyRequest = - new DependencyRequest( - collectRequest, DependencyFilterUtils.andFilter(exclusionFilter, classpathFilter)); + DependencyRequest dependencyRequest = new DependencyRequest(collectRequest, + DependencyFilterUtils.andFilter(exclusionFilter, classpathFilter)); return system.resolveDependencies(session, dependencyRequest).getArtifactResults(); } http://git-wip-us.apache.org/repos/asf/zeppelin/blob/0d746fa2/zeppelin-interpreter/src/main/java/org/apache/zeppelin/dep/DependencyResolver.java ---------------------------------------------------------------------- diff --git a/zeppelin-interpreter/src/main/java/org/apache/zeppelin/dep/DependencyResolver.java b/zeppelin-interpreter/src/main/java/org/apache/zeppelin/dep/DependencyResolver.java index fbd3561..495c69b 100644 --- a/zeppelin-interpreter/src/main/java/org/apache/zeppelin/dep/DependencyResolver.java +++ b/zeppelin-interpreter/src/main/java/org/apache/zeppelin/dep/DependencyResolver.java @@ -24,6 +24,7 @@ import java.util.Collection; import java.util.Iterator; import java.util.LinkedList; import java.util.List; + import org.apache.commons.io.FileUtils; import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; @@ -42,25 +43,26 @@ import org.sonatype.aether.util.artifact.JavaScopes; import org.sonatype.aether.util.filter.DependencyFilterUtils; import org.sonatype.aether.util.filter.PatternExclusionsDependencyFilter; -/** Deps resolver. Add new dependencies from mvn repo (at runtime) to Zeppelin. */ +/** + * Deps resolver. + * Add new dependencies from mvn repo (at runtime) to Zeppelin. + */ public class DependencyResolver extends AbstractDependencyResolver { private Logger logger = LoggerFactory.getLogger(DependencyResolver.class); - private final String[] exclusions = - new String[] { - "org.apache.zeppelin:zeppelin-zengine", - "org.apache.zeppelin:zeppelin-interpreter", - "org.apache.zeppelin:zeppelin-server" - }; + private final String[] exclusions = new String[] {"org.apache.zeppelin:zeppelin-zengine", + "org.apache.zeppelin:zeppelin-interpreter", + "org.apache.zeppelin:zeppelin-server"}; public DependencyResolver(String localRepoPath) { super(localRepoPath); } - public List<File> load(String artifact) throws RepositoryException, IOException { + public List<File> load(String artifact) + throws RepositoryException, IOException { return load(artifact, new LinkedList<String>()); } - + public synchronized List<File> load(String artifact, Collection<String> excludes) throws RepositoryException, IOException { if (StringUtils.isBlank(artifact)) { @@ -101,7 +103,8 @@ public class DependencyResolver extends AbstractDependencyResolver { return libs; } - public synchronized void copyLocalDependency(String srcPath, File destPath) throws IOException { + public synchronized void copyLocalDependency(String srcPath, File destPath) + throws IOException { if (StringUtils.isBlank(srcPath)) { return; } @@ -152,12 +155,13 @@ public class DependencyResolver extends AbstractDependencyResolver { * @throws Exception */ @Override - public List<ArtifactResult> getArtifactsWithDep(String dependency, Collection<String> excludes) + public List<ArtifactResult> getArtifactsWithDep(String dependency, + Collection<String> excludes) throws RepositoryException { Artifact artifact = new DefaultArtifact(dependency); DependencyFilter classpathFilter = DependencyFilterUtils.classpathFilter(JavaScopes.COMPILE); PatternExclusionsDependencyFilter exclusionFilter = - new PatternExclusionsDependencyFilter(excludes); + new PatternExclusionsDependencyFilter(excludes); CollectRequest collectRequest = new CollectRequest(); collectRequest.setRoot(new Dependency(artifact, JavaScopes.COMPILE)); @@ -167,14 +171,13 @@ public class DependencyResolver extends AbstractDependencyResolver { collectRequest.addRepository(repo); } } - DependencyRequest dependencyRequest = - new DependencyRequest( - collectRequest, DependencyFilterUtils.andFilter(exclusionFilter, classpathFilter)); + DependencyRequest dependencyRequest = new DependencyRequest(collectRequest, + DependencyFilterUtils.andFilter(exclusionFilter, classpathFilter)); try { return system.resolveDependencies(session, dependencyRequest).getArtifactResults(); } catch (NullPointerException | DependencyResolutionException ex) { throw new RepositoryException( - String.format("Cannot fetch dependencies for %s", dependency), ex); + String.format("Cannot fetch dependencies for %s", dependency), ex); } } } http://git-wip-us.apache.org/repos/asf/zeppelin/blob/0d746fa2/zeppelin-interpreter/src/main/java/org/apache/zeppelin/dep/Repository.java ---------------------------------------------------------------------- diff --git a/zeppelin-interpreter/src/main/java/org/apache/zeppelin/dep/Repository.java b/zeppelin-interpreter/src/main/java/org/apache/zeppelin/dep/Repository.java index 8b0d0c1..74adce8 100644 --- a/zeppelin-interpreter/src/main/java/org/apache/zeppelin/dep/Repository.java +++ b/zeppelin-interpreter/src/main/java/org/apache/zeppelin/dep/Repository.java @@ -16,7 +16,6 @@ */ package org.apache.zeppelin.dep; - import static org.apache.commons.lang.StringUtils.isNotBlank; import com.google.gson.Gson; @@ -24,7 +23,10 @@ import org.apache.zeppelin.common.JsonSerializable; import org.sonatype.aether.repository.Authentication; import org.sonatype.aether.repository.Proxy; -/** */ +/** + * + * + */ public class Repository implements JsonSerializable { private static final Gson gson = new Gson(); @@ -39,7 +41,7 @@ public class Repository implements JsonSerializable { private String proxyLogin = null; private String proxyPassword = null; - public Repository(String id) { + public Repository(String id){ this.id = id; } @@ -64,23 +66,23 @@ public class Repository implements JsonSerializable { public String getUrl() { return url; } - + public Repository username(String username) { this.username = username; return this; } - + public Repository password(String password) { this.password = password; return this; } - + public Repository credentials(String username, String password) { this.username = username; this.password = password; return this; } - + public Authentication getAuthentication() { Authentication auth = null; if (this.username != null && this.password != null) { @@ -92,8 +94,8 @@ public class Repository implements JsonSerializable { public Proxy getProxy() { if (isNotBlank(proxyHost) && proxyPort != null) { if (isNotBlank(proxyLogin)) { - return new Proxy( - proxyProtocol, proxyHost, proxyPort, new Authentication(proxyLogin, proxyPassword)); + return new Proxy(proxyProtocol, proxyHost, proxyPort, + new Authentication(proxyLogin, proxyPassword)); } else { return new Proxy(proxyProtocol, proxyHost, proxyPort, null); } http://git-wip-us.apache.org/repos/asf/zeppelin/blob/0d746fa2/zeppelin-interpreter/src/main/java/org/apache/zeppelin/dep/RepositoryListener.java ---------------------------------------------------------------------- diff --git a/zeppelin-interpreter/src/main/java/org/apache/zeppelin/dep/RepositoryListener.java b/zeppelin-interpreter/src/main/java/org/apache/zeppelin/dep/RepositoryListener.java index 4ea2963..9f62d5f 100644 --- a/zeppelin-interpreter/src/main/java/org/apache/zeppelin/dep/RepositoryListener.java +++ b/zeppelin-interpreter/src/main/java/org/apache/zeppelin/dep/RepositoryListener.java @@ -22,7 +22,9 @@ import org.slf4j.LoggerFactory; import org.sonatype.aether.AbstractRepositoryListener; import org.sonatype.aether.RepositoryEvent; -/** Simple listener that print log. */ +/** + * Simple listener that print log. + */ public class RepositoryListener extends AbstractRepositoryListener { Logger logger = LoggerFactory.getLogger(RepositoryListener.class); @@ -40,11 +42,8 @@ public class RepositoryListener extends AbstractRepositoryListener { @Override public void artifactDescriptorInvalid(RepositoryEvent event) { - logger.info( - "Invalid artifact descriptor for " - + event.getArtifact() - + ": " - + event.getException().getMessage()); + logger.info("Invalid artifact descriptor for " + event.getArtifact() + ": " + + event.getException().getMessage()); } @Override http://git-wip-us.apache.org/repos/asf/zeppelin/blob/0d746fa2/zeppelin-interpreter/src/main/java/org/apache/zeppelin/dep/RepositorySystemFactory.java ---------------------------------------------------------------------- diff --git a/zeppelin-interpreter/src/main/java/org/apache/zeppelin/dep/RepositorySystemFactory.java b/zeppelin-interpreter/src/main/java/org/apache/zeppelin/dep/RepositorySystemFactory.java index 6e0187f..a224603 100644 --- a/zeppelin-interpreter/src/main/java/org/apache/zeppelin/dep/RepositorySystemFactory.java +++ b/zeppelin-interpreter/src/main/java/org/apache/zeppelin/dep/RepositorySystemFactory.java @@ -27,7 +27,9 @@ import org.sonatype.aether.connector.wagon.WagonProvider; import org.sonatype.aether.connector.wagon.WagonRepositoryConnectorFactory; import org.sonatype.aether.spi.connector.RepositoryConnectorFactory; -/** Get maven repository instance. */ +/** + * Get maven repository instance. + */ public class RepositorySystemFactory { public static RepositorySystem newRepositorySystem() { DefaultServiceLocator locator = new DefaultServiceLocator(); @@ -38,7 +40,9 @@ public class RepositorySystemFactory { return locator.getService(RepositorySystem.class); } - /** ManualWagonProvider */ + /** + * ManualWagonProvider + */ public static class ManualWagonProvider implements WagonProvider { @Override @@ -55,6 +59,8 @@ public class RepositorySystemFactory { } @Override - public void release(Wagon arg0) {} + public void release(Wagon arg0) { + + } } } http://git-wip-us.apache.org/repos/asf/zeppelin/blob/0d746fa2/zeppelin-interpreter/src/main/java/org/apache/zeppelin/dep/TransferListener.java ---------------------------------------------------------------------- diff --git a/zeppelin-interpreter/src/main/java/org/apache/zeppelin/dep/TransferListener.java b/zeppelin-interpreter/src/main/java/org/apache/zeppelin/dep/TransferListener.java index 173f51c..7f25e3b 100644 --- a/zeppelin-interpreter/src/main/java/org/apache/zeppelin/dep/TransferListener.java +++ b/zeppelin-interpreter/src/main/java/org/apache/zeppelin/dep/TransferListener.java @@ -22,13 +22,16 @@ import java.text.DecimalFormatSymbols; import java.util.Locale; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.sonatype.aether.transfer.AbstractTransferListener; import org.sonatype.aether.transfer.TransferEvent; import org.sonatype.aether.transfer.TransferResource; -/** Simple listener that show deps downloading progress. */ +/** + * Simple listener that show deps downloading progress. + */ public class TransferListener extends AbstractTransferListener { private Logger logger = LoggerFactory.getLogger(TransferListener.class); @@ -43,11 +46,8 @@ public class TransferListener extends AbstractTransferListener { String message = event.getRequestType() == TransferEvent.RequestType.PUT ? "Uploading" : "Downloading"; - logger.info( - message - + ": " - + event.getResource().getRepositoryUrl() - + event.getResource().getResourceName()); + logger.info(message + ": " + event.getResource().getRepositoryUrl() + + event.getResource().getResourceName()); } @Override @@ -112,15 +112,8 @@ public class TransferListener extends AbstractTransferListener { throughput = " at " + format.format(kbPerSec) + " KB/sec"; } - logger.info( - type - + ": " - + resource.getRepositoryUrl() - + resource.getResourceName() - + " (" - + len - + throughput - + ")"); + logger.info(type + ": " + resource.getRepositoryUrl() + resource.getResourceName() + " (" + + len + throughput + ")"); } } @@ -146,4 +139,5 @@ public class TransferListener extends AbstractTransferListener { private long toKB(long bytes) { return (bytes + 1023) / 1024; } + } http://git-wip-us.apache.org/repos/asf/zeppelin/blob/0d746fa2/zeppelin-interpreter/src/main/java/org/apache/zeppelin/display/AngularObject.java ---------------------------------------------------------------------- diff --git a/zeppelin-interpreter/src/main/java/org/apache/zeppelin/display/AngularObject.java b/zeppelin-interpreter/src/main/java/org/apache/zeppelin/display/AngularObject.java index 976ba5f..1959e3d 100644 --- a/zeppelin-interpreter/src/main/java/org/apache/zeppelin/display/AngularObject.java +++ b/zeppelin-interpreter/src/main/java/org/apache/zeppelin/display/AngularObject.java @@ -18,19 +18,20 @@ package org.apache.zeppelin.display; import com.google.gson.Gson; -import java.util.LinkedList; -import java.util.List; -import java.util.Objects; -import java.util.concurrent.ExecutorService; import org.apache.zeppelin.common.JsonSerializable; import org.apache.zeppelin.scheduler.ExecutorFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.util.LinkedList; +import java.util.List; +import java.util.Objects; +import java.util.concurrent.ExecutorService; + /** - * AngularObject provides binding between back-end (interpreter) and front-end User provided object - * will automatically synchronized with front-end side. i.e. update from back-end will be sent to - * front-end, update from front-end will sent-to backend + * AngularObject provides binding between back-end (interpreter) and front-end + * User provided object will automatically synchronized with front-end side. + * i.e. update from back-end will be sent to front-end, update from front-end will sent-to backend * * @param <T> */ @@ -40,20 +41,21 @@ public class AngularObject<T> implements JsonSerializable { private String name; private T object; - + private transient AngularObjectListener listener; private transient List<AngularObjectWatcher> watchers = new LinkedList<>(); - - private String noteId; // noteId belonging to. null for global scope + + private String noteId; // noteId belonging to. null for global scope private String paragraphId; // paragraphId belongs to. null for notebook scope /** * Public constructor, neccessary for the deserialization when using Thrift angularRegistryPush() - * Without public constructor, GSON library will instantiate the AngularObject using serialization - * so the <strong>watchers</strong> list won't be initialized and will throw NullPointerException - * the first time it is accessed + * Without public constructor, GSON library will instantiate the AngularObject using + * serialization so the <strong>watchers</strong> list won't be initialized and will throw + * NullPointerException the first time it is accessed */ - public AngularObject() {} + public AngularObject() { + } /** * To create new AngularObject, use AngularObjectRegistry.add() @@ -64,8 +66,8 @@ public class AngularObject<T> implements JsonSerializable { * @param paragraphId paragraphId belongs to. can be null * @param listener event listener */ - public AngularObject( - String name, T o, String noteId, String paragraphId, AngularObjectListener listener) { + public AngularObject(String name, T o, String noteId, String paragraphId, + AngularObjectListener listener) { this.name = name; this.noteId = noteId; this.paragraphId = paragraphId; @@ -75,7 +77,6 @@ public class AngularObject<T> implements JsonSerializable { /** * Get name of this object - * * @return name */ public String getName() { @@ -84,7 +85,6 @@ public class AngularObject<T> implements JsonSerializable { /** * Set noteId - * * @param noteId noteId belongs to. can be null */ public void setNoteId(String noteId) { @@ -93,7 +93,6 @@ public class AngularObject<T> implements JsonSerializable { /** * Get noteId - * * @return noteId */ public String getNoteId() { @@ -102,7 +101,6 @@ public class AngularObject<T> implements JsonSerializable { /** * get ParagraphId - * * @return paragraphId */ public String getParagraphId() { @@ -111,7 +109,6 @@ public class AngularObject<T> implements JsonSerializable { /** * Set paragraphId - * * @param paragraphId paragraphId. can be null */ public void setParagraphId(String paragraphId) { @@ -120,7 +117,6 @@ public class AngularObject<T> implements JsonSerializable { /** * Check if it is global scope object - * * @return true it is global scope */ public boolean isGlobal() { @@ -132,9 +128,9 @@ public class AngularObject<T> implements JsonSerializable { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; AngularObject<?> that = (AngularObject<?>) o; - return Objects.equals(name, that.name) - && Objects.equals(noteId, that.noteId) - && Objects.equals(paragraphId, that.paragraphId); + return Objects.equals(name, that.name) && + Objects.equals(noteId, that.noteId) && + Objects.equals(paragraphId, that.paragraphId); } @Override @@ -144,14 +140,16 @@ public class AngularObject<T> implements JsonSerializable { /** * Get value - * * @return */ public Object get() { return object; } - /** fire updated() event for listener Note that it does not invoke watcher.watch() */ + /** + * fire updated() event for listener + * Note that it does not invoke watcher.watch() + */ public void emit() { if (listener != null) { listener.updated(this); @@ -160,7 +158,6 @@ public class AngularObject<T> implements JsonSerializable { /** * Set value - * * @param o reference to new user provided object */ public void set(T o) { @@ -169,10 +166,9 @@ public class AngularObject<T> implements JsonSerializable { /** * Set value - * * @param o reference to new user provided object * @param emit false on skip firing event for listener. note that it does not skip invoke - * watcher.watch() in any case + * watcher.watch() in any case */ public void set(T o, boolean emit) { final T before = object; @@ -190,23 +186,21 @@ public class AngularObject<T> implements JsonSerializable { ExecutorService executor = ExecutorFactory.singleton().createOrGet("angularObjectWatcher", 50); for (final AngularObjectWatcher w : ws) { - executor.submit( - new Runnable() { - @Override - public void run() { - try { - w.watch(before, after); - } catch (Exception e) { - logger.error("Exception on watch", e); - } - } - }); + executor.submit(new Runnable() { + @Override + public void run() { + try { + w.watch(before, after); + } catch (Exception e) { + logger.error("Exception on watch", e); + } + } + }); } } /** * Set event listener for this object - * * @param listener */ public void setListener(AngularObjectListener listener) { @@ -215,7 +209,6 @@ public class AngularObject<T> implements JsonSerializable { /** * Get event listener of this object - * * @return event listener */ public AngularObjectListener getListener() { @@ -223,7 +216,8 @@ public class AngularObject<T> implements JsonSerializable { } /** - * Add a watcher for this object. Multiple watcher can be registered. + * Add a watcher for this object. + * Multiple watcher can be registered. * * @param watcher watcher to add */ @@ -235,7 +229,6 @@ public class AngularObject<T> implements JsonSerializable { /** * Remove a watcher from this object - * * @param watcher watcher to remove */ public void removeWatcher(AngularObjectWatcher watcher) { @@ -244,7 +237,9 @@ public class AngularObject<T> implements JsonSerializable { } } - /** Remove all watchers from this object */ + /** + * Remove all watchers from this object + */ public void clearAllWatchers() { synchronized (watchers) { watchers.clear(); http://git-wip-us.apache.org/repos/asf/zeppelin/blob/0d746fa2/zeppelin-interpreter/src/main/java/org/apache/zeppelin/display/AngularObjectListener.java ---------------------------------------------------------------------- diff --git a/zeppelin-interpreter/src/main/java/org/apache/zeppelin/display/AngularObjectListener.java b/zeppelin-interpreter/src/main/java/org/apache/zeppelin/display/AngularObjectListener.java index c5bcd4e..20f34af 100644 --- a/zeppelin-interpreter/src/main/java/org/apache/zeppelin/display/AngularObjectListener.java +++ b/zeppelin-interpreter/src/main/java/org/apache/zeppelin/display/AngularObjectListener.java @@ -17,7 +17,9 @@ package org.apache.zeppelin.display; -/** */ +/** + * + */ public interface AngularObjectListener { void updated(AngularObject updatedObject); }
