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

Reply via email to