This is an automated email from the ASF dual-hosted git repository. pdallig pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/zeppelin.git
The following commit(s) were added to refs/heads/master by this push: new 6a4fcdc199 [ZEPPELIN-5833] Enable Cassandra for JDK11 6a4fcdc199 is described below commit 6a4fcdc199971e9ecd2c5f795aeff66a020488bc Author: Philipp Dallig <philipp.dal...@gmail.com> AuthorDate: Thu Oct 6 16:13:36 2022 +0200 [ZEPPELIN-5833] Enable Cassandra for JDK11 ### What is this PR for? This PR updates scala for the cassandra interpreter to 2.12 ### What type of PR is it? - Improvement ### Todos * [ ] - Verify with real Cassandra Backend ### What is the Jira issue? * https://issues.apache.org/jira/browse/ZEPPELIN-5833 ### How should this be tested? * CI ### Questions: * Does the licenses files need to update? Yes * Is there breaking changes for older versions? Yes * Does this needs documentation? No Author: Philipp Dallig <philipp.dal...@gmail.com> Closes #4479 from Reamer/cassandra_jdk11 and squashes the following commits: 4ba0dbc7e [Philipp Dallig] Enable Cassandra for JDK11 --- cassandra/pom.xml | 97 +++++++++++++--------- .../zeppelin/cassandra/InterpreterLogic.scala | 2 +- .../cassandra/CassandraInterpreterTest.java | 26 +++--- .../zeppelin/cassandra/InterpreterLogicTest.java | 4 +- .../test/resources/scalate/DescribeKeyspaces.html | 2 +- .../src/test/resources/scalate/DescribeTables.html | 2 +- .../zeppelin/cassandra/ParagraphParserTest.scala | 2 +- pom.xml | 8 ++ zeppelin-distribution/src/bin_license/LICENSE | 8 +- 9 files changed, 84 insertions(+), 67 deletions(-) diff --git a/cassandra/pom.xml b/cassandra/pom.xml index da0c3ed5c5..04c87bdffe 100644 --- a/cassandra/pom.xml +++ b/cassandra/pom.xml @@ -31,14 +31,20 @@ <description>Zeppelin cassandra support</description> <properties> - <cassandra.driver.version>4.8.0</cassandra.driver.version> - <snappy.version>1.1.7.3</snappy.version> - <lz4.version>1.7.0</lz4.version> - <scalate.version>1.7.1</scalate.version> + <cassandra.driver.version>4.14.1</cassandra.driver.version> + <snappy.version>1.1.8.4</snappy.version> + <lz4.version>1.8.0</lz4.version> + <scalate.version>1.9.8</scalate.version> <!-- test library versions --> - <jna.version>4.2.0</jna.version> + <jna.version>5.12.1</jna.version> <cassandra.unit.version>4.3.1.0</cassandra.unit.version> + <scalecheck.version>1.17.0</scalecheck.version> + + <scala.version>${scala.2.12.version}</scala.version> + <scala.binary.version>2.12</scala.binary.version> + <scala.parser.combinators>1.1.2</scala.parser.combinators> + <cassandra.scalatest.version>3.2.0-SNAP10</cassandra.scalatest.version> <interpreter.name>cassandra</interpreter.name> </properties> @@ -100,13 +106,6 @@ <scope>runtime</scope> </dependency> - <!-- we'll switch back to it after removing support for Scala 2.10 - <dependency> - <groupId>org.scala-lang.modules</groupId> - <artifactId>scala-java8-compat_${scala.binary.version}</artifactId> - <version>${scala.java8.compat.version}</version> - </dependency> --> - <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> @@ -118,11 +117,24 @@ <version>${scalate.version}</version> </dependency> + <dependency> + <groupId>org.scala-lang.modules</groupId> + <artifactId>scala-parser-combinators_${scala.binary.version}</artifactId> + <version>${scala.parser.combinators}</version> + </dependency> + <!-- test libraries --> <dependency> <groupId>org.scalatest</groupId> <artifactId>scalatest_${scala.binary.version}</artifactId> - <version>${scalatest.version}</version> + <version>${cassandra.scalatest.version}</version> + <scope>test</scope> + </dependency> + + <dependency> + <groupId>org.scalacheck</groupId> + <artifactId>scalacheck_${scala.binary.version}</artifactId> + <version>${scalecheck.version}</version> <scope>test</scope> </dependency> @@ -158,6 +170,7 @@ <artifactId>assertj-core</artifactId> <scope>test</scope> </dependency> + </dependencies> <build> @@ -174,30 +187,50 @@ <plugins> <!-- Plugin to compile Scala code --> <plugin> - <groupId>org.scala-tools</groupId> - <artifactId>maven-scala-plugin</artifactId> + <groupId>net.alchim31.maven</groupId> + <artifactId>scala-maven-plugin</artifactId> <executions> <execution> - <id>compile</id> + <id>eclipse-add-source</id> <goals> - <goal>compile</goal> + <goal>add-source</goal> </goals> - <phase>compile</phase> </execution> <execution> - <id>test-compile</id> + <id>scala-compile-first</id> + <phase>process-resources</phase> <goals> - <goal>testCompile</goal> + <goal>compile</goal> </goals> - <phase>test-compile</phase> </execution> <execution> - <phase>process-resources</phase> + <id>scala-test-compile-first</id> + <phase>process-test-resources</phase> <goals> - <goal>compile</goal> + <goal>testCompile</goal> </goals> </execution> </executions> + <configuration> + <args> + <arg>-unchecked</arg> + <arg>-deprecation</arg> + <arg>-feature</arg> + <arg>-nobootcp</arg> + </args> + <jvmArgs> + <jvmArg>-Xms1024m</jvmArg> + <jvmArg>-Xmx1024m</jvmArg> + <jvmArg>-XX:MaxMetaspaceSize=${MaxMetaspace}</jvmArg> + </jvmArgs> + <javacArgs> + <javacArg>-source</javacArg> + <javacArg>${java.version}</javacArg> + <javacArg>-target</javacArg> + <javacArg>${java.version}</javacArg> + <javacArg>-Xlint:all,-serial,-path,-options</javacArg> + </javacArgs> + </configuration> </plugin> <plugin> @@ -213,24 +246,6 @@ </executions> </plugin> - <plugin> - <groupId>org.scalatra.scalate</groupId> - <artifactId>maven-scalate-plugin_${scala.binary.version}</artifactId> - <executions> - <execution> - <id>compile</id> - <phase>process-classes</phase> - <goals> - <goal>precompile</goal> - </goals> - <configuration> - <resourcesSourceDirectory>${basedir}/src/main/resources/scalate</resourcesSourceDirectory> - <contextClass>org.fusesource.scalate.DefaultRenderContext</contextClass> - </configuration> - </execution> - </executions> - </plugin> - <plugin> <artifactId>maven-enforcer-plugin</artifactId> </plugin> diff --git a/cassandra/src/main/scala/org/apache/zeppelin/cassandra/InterpreterLogic.scala b/cassandra/src/main/scala/org/apache/zeppelin/cassandra/InterpreterLogic.scala index 5529a71859..c3007f436f 100644 --- a/cassandra/src/main/scala/org/apache/zeppelin/cassandra/InterpreterLogic.scala +++ b/cassandra/src/main/scala/org/apache/zeppelin/cassandra/InterpreterLogic.scala @@ -380,7 +380,7 @@ class InterpreterLogic(val session: CqlSession, val properties: Properties) { findInAngularRepository(variable) match { case Some(value) => statement.replaceAll(escapedExp,value.toString) case None => - val value = context.getGui.input(variable, defaultVal) + val value = context.getGui.textbox(variable, defaultVal) statement.replaceAll(escapedExp, value.toString) } diff --git a/cassandra/src/test/java/org/apache/zeppelin/cassandra/CassandraInterpreterTest.java b/cassandra/src/test/java/org/apache/zeppelin/cassandra/CassandraInterpreterTest.java index 5e4c994611..ccd70682f5 100644 --- a/cassandra/src/test/java/org/apache/zeppelin/cassandra/CassandraInterpreterTest.java +++ b/cassandra/src/test/java/org/apache/zeppelin/cassandra/CassandraInterpreterTest.java @@ -19,6 +19,8 @@ package org.apache.zeppelin.cassandra; import com.datastax.oss.driver.api.core.CqlSession; import com.datastax.oss.driver.api.core.config.DefaultDriverOption; import com.datastax.oss.driver.api.core.config.DriverExecutionProfile; + +import org.apache.commons.io.IOUtils; import org.apache.zeppelin.display.AngularObjectRegistry; import org.apache.zeppelin.display.GUI; import org.apache.zeppelin.interpreter.Interpreter; @@ -33,10 +35,8 @@ import org.junit.BeforeClass; import org.junit.Ignore; import org.junit.Test; -import java.io.BufferedReader; import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; +import java.nio.charset.StandardCharsets; import java.util.Map; import java.util.Properties; @@ -264,7 +264,7 @@ public class CassandraInterpreterTest { //extends AbstractCassandraUnit4CQLTestC "The Way You Are\tTears for Fears\t1983\n" + "Primitive\tSoulfly\t2003\n"); } - + @Test public void should_throw_statement_not_having_semi_colon() { //Given @@ -834,18 +834,12 @@ public class CassandraInterpreterTest { //extends AbstractCassandraUnit4CQLTestC } private static String readTestResource(String testResource) { - StringBuilder builder = new StringBuilder(); - InputStream stream = testResource.getClass().getResourceAsStream(testResource); - - try (BufferedReader br = new BufferedReader(new InputStreamReader(stream))) { - String line; - while ((line = br.readLine()) != null) { - builder.append(line).append("\n"); - } - } catch (Exception ex) { - throw new RuntimeException(ex); + try { + return IOUtils.toString( + CassandraInterpreterTest.class.getResourceAsStream(testResource), + StandardCharsets.UTF_8); + } catch (IOException ex) { + throw new RuntimeException(ex); } - - return builder.toString(); } } diff --git a/cassandra/src/test/java/org/apache/zeppelin/cassandra/InterpreterLogicTest.java b/cassandra/src/test/java/org/apache/zeppelin/cassandra/InterpreterLogicTest.java index fda915d2c4..f0d8334db3 100644 --- a/cassandra/src/test/java/org/apache/zeppelin/cassandra/InterpreterLogicTest.java +++ b/cassandra/src/test/java/org/apache/zeppelin/cassandra/InterpreterLogicTest.java @@ -148,8 +148,8 @@ public class InterpreterLogicTest { //Given AngularObjectRegistry angularObjectRegistry = new AngularObjectRegistry("cassandra", null); when(intrContext.getAngularObjectRegistry()).thenReturn(angularObjectRegistry); - when(intrContext.getGui().input("table", "zeppelin.demo")).thenReturn("zeppelin.demo"); - when(intrContext.getGui().input("id", "'John'")).thenReturn("'John'"); + when(intrContext.getGui().textbox("table", "zeppelin.demo")).thenReturn("zeppelin.demo"); + when(intrContext.getGui().textbox("id", "'John'")).thenReturn("'John'"); //When final String actual = helper.maybeExtractVariables( diff --git a/cassandra/src/test/resources/scalate/DescribeKeyspaces.html b/cassandra/src/test/resources/scalate/DescribeKeyspaces.html index ac48bd3411..f06b9406c3 100644 --- a/cassandra/src/test/resources/scalate/DescribeKeyspaces.html +++ b/cassandra/src/test/resources/scalate/DescribeKeyspaces.html @@ -1 +1 @@ -<br/><br/><nav class="navbar navbar-default"><ul class="nav navbar-nav"><li role="presentation" class="dropdown"><a class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"><span class="text-muted"><span class="glyphicon glyphicon-dashboard"></span> <strong>Test Cluster</strong></span><span class="text-muted caret"></span><ul class="dropdown-menu"><li class="dropdown-header"><span class="text-danger">Keyspaces</span></li><li><a role="bu [...] \ No newline at end of file +<br/><br/><nav class="navbar navbar-default"><ul class="nav navbar-nav"><li role="presentation" class="dropdown"><a class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"><span class="text-muted"><span class="glyphicon glyphicon-dashboard"></span> <strong>Test Cluster</strong></span><span class="text-muted caret"></span><ul class="dropdown-menu"><li class="dropdown-header"><span class="text-danger">Keyspaces</span></li><li><a role="bu [...] \ No newline at end of file diff --git a/cassandra/src/test/resources/scalate/DescribeTables.html b/cassandra/src/test/resources/scalate/DescribeTables.html index 05992914d3..cba4b82536 100644 --- a/cassandra/src/test/resources/scalate/DescribeTables.html +++ b/cassandra/src/test/resources/scalate/DescribeTables.html @@ -1 +1 @@ -<br/><br/><nav class="navbar navbar-default"><ul class="nav navbar-nav"><li role="presentation" class="dropdown"><a class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"><span class="text-muted"><span class="glyphicon glyphicon-dashboard"></span> <strong>Test Cluster</strong></span><span class="text-muted caret"></span><ul class="dropdown-menu"><li class="dropdown-header"><span class="text-danger">Keyspaces</span></li><li><a role="bu [...] \ No newline at end of file +<br/><br/><nav class="navbar navbar-default"><ul class="nav navbar-nav"><li role="presentation" class="dropdown"><a class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"><span class="text-muted"><span class="glyphicon glyphicon-dashboard"></span> <strong>Test Cluster</strong></span><span class="text-muted caret"></span><ul class="dropdown-menu"><li class="dropdown-header"><span class="text-danger">Keyspaces</span></li><li><a role="bu [...] \ No newline at end of file diff --git a/cassandra/src/test/scala/org/apache/zeppelin/cassandra/ParagraphParserTest.scala b/cassandra/src/test/scala/org/apache/zeppelin/cassandra/ParagraphParserTest.scala index 19afafcbef..f5cb574f44 100644 --- a/cassandra/src/test/scala/org/apache/zeppelin/cassandra/ParagraphParserTest.scala +++ b/cassandra/src/test/scala/org/apache/zeppelin/cassandra/ParagraphParserTest.scala @@ -19,7 +19,7 @@ package org.apache.zeppelin.cassandra import com.datastax.oss.driver.api.core.{ConsistencyLevel, CqlSession} import com.datastax.oss.driver.api.core.cql.{BatchType, PreparedStatement} import org.apache.zeppelin.interpreter.InterpreterException -import org.scalatest.mock.MockitoSugar +import org.scalatest.mockito.MockitoSugar import org.scalatest.{BeforeAndAfterEach, FlatSpec, Matchers} import org.apache.zeppelin.cassandra.ParagraphParser._ import org.apache.zeppelin.cassandra.TextBlockHierarchy._ diff --git a/pom.xml b/pom.xml index 362714518d..7cd9562804 100644 --- a/pom.xml +++ b/pom.xml @@ -102,6 +102,7 @@ <scala.version>${scala.2.10.version}</scala.version> <scala.binary.version>2.10</scala.binary.version> <scala.2.11.version>2.11.8</scala.2.11.version> + <scala.2.12.version>2.12.16</scala.2.12.version> <scalatest.version>3.0.7</scalatest.version> <scalacheck.version>1.12.5</scalacheck.version> @@ -1853,6 +1854,13 @@ <scala.binary.version>2.11</scala.binary.version> </properties> </profile> + <profile> + <id>scala-2.12</id> + <properties> + <scala.version>${scala.2.12.version}</scala.version> + <scala.binary.version>2.12</scala.binary.version> + </properties> + </profile> <profile> <id>web-angular</id> diff --git a/zeppelin-distribution/src/bin_license/LICENSE b/zeppelin-distribution/src/bin_license/LICENSE index 7f90d43bdd..c60e5130b3 100644 --- a/zeppelin-distribution/src/bin_license/LICENSE +++ b/zeppelin-distribution/src/bin_license/LICENSE @@ -62,9 +62,9 @@ The following components are provided under Apache License. (Apache 2.0) xml apis (xml-apis:xml-apis:jar:1.4.01 - http://xerces.apache.org/xml-commons/components/external) (Apache 2.0) java-xmlbuilder (com.jamesmurty.utils:java-xmlbuilder:jar:1.0 - https://github.com/jmurty/java-xmlbuilder) (Apache 2.0) compress-lzf (com.ning:compress-lzf:jar:1.0.3 - https://github.com/ning/compress) Copyright 2009-2010 Ning, Inc. - (Apache 2.0) java-driver-core (com.datastax.oss:java-driver-core:jar:4.5.1 - https://github.com/datastax/java-driver) - (Apache 2.0) Snappy-java (org.xerial.snappy:snappy-java:1.1.7.3 - https://github.com/xerial/snappy-java/) - (Apache 2.0) lz4-java (org.lz4:lz4-java:jar:1.6.0 - https://github.com/lz4/lz4-java) + (Apache 2.0) java-driver-core (com.datastax.oss:java-driver-core:jar:4.14.1 - https://github.com/datastax/java-driver) + (Apache 2.0) Snappy-java (org.xerial.snappy:snappy-java:1.1.8.4 - https://github.com/xerial/snappy-java/) + (Apache 2.0) lz4-java (org.lz4:lz4-java:jar:1.8.0 - https://github.com/lz4/lz4-java) (Apache 2.0) RoaringBitmap (org.roaringbitmap:RoaringBitmap:jar:0.5.11 - https://github.com/lemire/RoaringBitmap) (Apache 2.0) json4s (org.json4s:json4s-ast_2.10:jar:3.2.10 - https://github.com/json4s/json4s) (Apache 2.0) HPPC Collections (com.carrotsearch:hppc:0.7.1 - http://labs.carrotsearch.com/hppc.html/hppc) @@ -211,7 +211,7 @@ The following components are provided under Apache License. (Apache 2.0) Maven Artifact Resolver Connector Basic 1.4.1 (org.apache.maven.resolver:maven-resolver-connector-basic:1.4.1 - https://github.com/apache/maven-resolver) (Apache 2.0) Maven Artifact Resolver Transport File 1.4.1 (org.apache.maven.resolver:maven-resolver-transport-file:1.4.1 - https://github.com/apache/maven-resolver) (Apache 2.0) Maven Artifact Resolver Transport HTTP 1.4.1 (org.apache.maven.resolver:maven-resolver-transport-http:1.4.1 - https://github.com/apache/maven-resolver) - (Apache 2.0) Scalatest 2.2.4 (org.scalatest:scalatest_2.10:2.2.4 - https://github.com/scalatest/scalatest) + (Apache 2.0) Scalatest 3.2.0-SNAP10 (org.scalatest:scalatest_2.12:3.2.0-SNAP10 - https://github.com/scalatest/scalatest) (Apache 2.0) frontend-maven-plugin 1.3 (com.github.eirslett:frontend-maven-plugin:1.3 - https://github.com/eirslett/frontend-maven-plugin/blob/frontend-plugins-1.3/LICENSE (Apache 2.0) frontend-plugin-core 1.3 (com.github.eirslett:frontend-plugin-core) - https://github.com/eirslett/frontend-maven-plugin/blob/frontend-plugins-1.3/LICENSE (Apache 2.0) mongo-java-driver 3.12.10 (org.mongodb:mongo-java-driver:3.12.10) - https://github.com/mongodb/mongo-java-driver/blob/master/LICENSE.txt