I’m having a problem using ArrayList in Scala . The code is below
import org.apache.flink.core.fs._
import org.apache.flink.streaming.api._
import org.apache.flink.streaming.api.scala._
import org.apache.flink.table.api._
import org.apache.flink.table.api.scala._
import org.apache.flink.table.sinks._
import org.apache.http.HttpHost
import org.slf4j.LoggerFactory
import java.util.ArrayList
object Job {
val httpHosts = new ArrayList[HttpHost]
httpHosts.add(new HttpHost("samwise.local", 9200, "http"))
…..
}
Scala refuses to recognise ArrayList. The IDE InteliJ likewise flags java.util
as not existing, even though it recognises ArrayList and suggest auto-insertion
of the import java.utils.ArrayList statement. The compilation errors are
[error] ………………/src/main/scala/org/example/Job.scala:30:13: object util is not a
member of package org.apache.flink.table.api.java
[error] import java.util.ArrayList
[error] ^
[error] ………………/src/main/scala/org/example/Job.scala:34:23: not found: type
ArrayList
[error] val httpHosts = new ArrayList[HttpHost]
[error] ^
[error] two errors found
[error] (Compile / compileIncremental) Compilation failed
Without the ArrayList reference the code compiles with no errors.
The sbt build file, if it helps is,
resolvers in ThisBuild ++= Seq("Apache Development Snapshot Repository" at
"https://repository.apache.org/content/repositories/snapshots/",
Resolver.mavenLocal)
name := "Flink MultiChannel Project"
version := "0.1-SNAPSHOT"
organization := "org.example"
scalaVersion in ThisBuild := "2.11.0"
val flinkVersion = "1.8.1"
val flinkDependencies = Seq(
"org.apache.flink" %% "flink-scala" % flinkVersion ,
"org.apache.flink" %% "flink-table" % "1.7.2" ,
"org.apache.flink" %% "flink-connector-elasticsearch" % flinkVersion,
"org.apache.flink" %% "flink-streaming-scala" % flinkVersion,
"org.apache.httpcomponents" % "httpclient" % "4.5.10",
"org.apache.httpcomponents" % "httpcore" % "4.4.11")
// https://mvnrepository.com/artifact/org.apache.httpcomponents/httpcore
lazy val root = (project in file(".")).
settings(
libraryDependencies ++= flinkDependencies)
mainClass in assembly := Some("org.example.Job")
// make run command include the provided dependencies
run in Compile := Defaults.runTask(fullClasspath in Compile, mainClass in
(Compile, run), runner in (Compile, run))
// exclude Scala library from assembly
assemblyOption in assembly := (assemblyOption in
assembly).value.copy(includeScala = false)
TIA
Nick