You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by ji...@apache.org on 2019/01/08 05:07:15 UTC
[flink] branch master updated: [FLINK-11161][scala-shell] Fix
unable to import java packages in scala-shell.
This is an automated email from the ASF dual-hosted git repository.
jincheng pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/flink.git
The following commit(s) were added to refs/heads/master by this push:
new 79f3170 [FLINK-11161][scala-shell] Fix unable to import java packages in scala-shell.
79f3170 is described below
commit 79f317026bcf8f5829ed32f592c91aa2a99a4051
Author: acqua.csq <ac...@alibaba-inc.com>
AuthorDate: Thu Dec 27 14:33:10 2018 +0800
[FLINK-11161][scala-shell] Fix unable to import java packages in scala-shell.
This closes #7370
---
.../org/apache/flink/api/scala/FlinkILoop.scala | 1 -
.../apache/flink/api/scala/ScalaShellITCase.scala | 89 ++++++++++++++++++++--
.../start-script/start-scala-shell.sh | 2 +-
3 files changed, 84 insertions(+), 8 deletions(-)
diff --git a/flink-scala-shell/src/main/scala/org/apache/flink/api/scala/FlinkILoop.scala b/flink-scala-shell/src/main/scala/org/apache/flink/api/scala/FlinkILoop.scala
index c124d8e..27db2a3 100644
--- a/flink-scala-shell/src/main/scala/org/apache/flink/api/scala/FlinkILoop.scala
+++ b/flink-scala-shell/src/main/scala/org/apache/flink/api/scala/FlinkILoop.scala
@@ -149,7 +149,6 @@ class FlinkILoop(
"org.apache.flink.api.scala.utils._",
"org.apache.flink.streaming.api.scala._",
"org.apache.flink.streaming.api.windowing.time._",
- "org.apache.flink.table.api._",
"org.apache.flink.table.api.scala._",
"org.apache.flink.types.Row"
)
diff --git a/flink-scala-shell/src/test/scala/org/apache/flink/api/scala/ScalaShellITCase.scala b/flink-scala-shell/src/test/scala/org/apache/flink/api/scala/ScalaShellITCase.scala
index fc90d8d..8fd94e5 100644
--- a/flink-scala-shell/src/test/scala/org/apache/flink/api/scala/ScalaShellITCase.scala
+++ b/flink-scala-shell/src/test/scala/org/apache/flink/api/scala/ScalaShellITCase.scala
@@ -183,9 +183,9 @@ class ScalaShellITCase extends TestLogger {
|:q
""".stripMargin
val output = processInShell(input)
- Assert.assertFalse(output.contains("failed"))
- Assert.assertFalse(output.contains("error"))
- Assert.assertFalse(output.contains("Exception"))
+ Assert.assertFalse(output.toLowerCase.contains("failed"))
+ Assert.assertFalse(output.toLowerCase.contains("error"))
+ Assert.assertFalse(output.toLowerCase.contains("exception"))
Assert.assertTrue(output.contains("1,Hi"))
Assert.assertTrue(output.contains("3,Hello world"))
}
@@ -218,9 +218,9 @@ class ScalaShellITCase extends TestLogger {
Assert.assertTrue(output.contains("6,1"))
Assert.assertTrue(output.contains("1,2"))
Assert.assertTrue(output.contains("2,1"))
- Assert.assertFalse(output.contains("failed"))
- Assert.assertFalse(output.contains("error"))
- Assert.assertFalse(output.contains("Exception"))
+ Assert.assertFalse(output.toLowerCase.contains("failed"))
+ Assert.assertFalse(output.toLowerCase.contains("error"))
+ Assert.assertFalse(output.toLowerCase.contains("exception"))
}
/**
@@ -362,6 +362,83 @@ class ScalaShellITCase extends TestLogger {
Assert.assertFalse(output.contains("ERROR"))
Assert.assertFalse(output.contains("Exception"))
}
+
+ @Test
+ def testImportJavaCollection(): Unit = {
+ val input = """
+ import java.util.List
+ val jul: List[Int] = new java.util.ArrayList[Int]()
+ jul.add(2)
+ jul.add(4)
+ jul.add(6)
+ jul.add(8)
+ jul.add(10)
+ val str = "the java list size is: " + jul.size
+ """.stripMargin
+
+ val output = processInShell(input)
+
+ Assert.assertTrue(output.contains("the java list size is: 5"))
+ Assert.assertFalse(output.toLowerCase.contains("failed"))
+ Assert.assertFalse(output.toLowerCase.contains("error"))
+ Assert.assertFalse(output.toLowerCase.contains("exception"))
+
+ }
+
+ @Test
+ def testImplicitConversionBetweenJavaAndScala(): Unit = {
+ val input =
+ """
+ import collection.JavaConversions._
+ import scala.collection.mutable.ArrayBuffer
+ val jul:java.util.List[Int] = ArrayBuffer(1,2,3,4,5)
+ val buf: Seq[Int] = jul
+ var sum = 0
+ buf.foreach(num => sum += num)
+ val str = "sum is: " + sum
+ val scala2jul = List(1,2,3)
+ scala2jul.add(7)
+ """.stripMargin
+
+ val output = processInShell(input)
+
+ Assert.assertTrue(output.contains("sum is: 15"))
+ Assert.assertFalse(output.toLowerCase.contains("failed"))
+ Assert.assertFalse(output.toLowerCase.contains("error"))
+ Assert.assertTrue(output.contains("java.lang.UnsupportedOperationException"))
+ }
+
+ @Test
+ def testImportPackageConflict(): Unit = {
+ val input =
+ """
+ import org.apache.flink.table.api._
+ import java.util.List
+ val jul: List[Int] = new java.util.ArrayList[Int]()
+ jul.add(2)
+ jul.add(4)
+ jul.add(6)
+ jul.add(8)
+ jul.add(10)
+ val str = "the java list size is: " + jul.size
+ """.stripMargin
+
+ val output = processInShell(input)
+ Assert.assertTrue(output.contains("error: object util is not a member of package org.apache." +
+ "flink.table.api.java"))
+ }
+
+ @Test
+ def testGetMultiExecutionEnvironment(): Unit = {
+ val input =
+ """
+ |val newEnv = ExecutionEnvironment.getExecutionEnvironment
+ """.stripMargin
+ val output = processInShell(input)
+ Assert.assertTrue(output.contains("java.lang.UnsupportedOperationException: Execution " +
+ "Environment is already defined for this shell."))
+ }
+
}
object ScalaShellITCase {
diff --git a/flink-scala-shell/start-script/start-scala-shell.sh b/flink-scala-shell/start-script/start-scala-shell.sh
index e357114..489d50b 100644
--- a/flink-scala-shell/start-script/start-scala-shell.sh
+++ b/flink-scala-shell/start-script/start-scala-shell.sh
@@ -54,7 +54,7 @@ FLINK_CLASSPATH=`constructFlinkClassPath`
# Append flink-table jar into class path
opt=`dirname "$0"`
-opt=`cd ../"$opt"/opt; pwd`
+opt=`cd "$opt"/../opt; pwd`
FLINK_TABLE_LIB_PATH=$opt/`ls $opt|grep flink-table_*`
FLINK_CLASSPATH=$FLINK_CLASSPATH:$FLINK_TABLE_LIB_PATH