vertx-kafka-client icon indicating copy to clipboard operation
vertx-kafka-client copied to clipboard

Documentation for Scala is not clear

Open Sammers21 opened this issue 6 years ago • 0 comments

While reading documentation dedicated to scala API http://vertx.io/docs/vertx-kafka-client/scala/ it is assumed that API can be consumed from the dependency:

<dependency>
  <groupId>io.vertx</groupId>
  <artifactId>vertx-kafka-client</artifactId>
  <version>3.5.1</version>
</dependency>

In fact, it can't.

Reproducer:

  1. create a file Hello.scala
import io.vertx.core.Vertx
import io.vertx.kafka.client.consumer.KafkaConsumer

object Hello extends App {

  val vertx = Vertx.vertx()
  var config = Map() +
    ("bootstrap.servers" -> "localhost:9092") +
    ("key.deserializer" -> "org.apache.kafka.common.serialization.StringDeserializer") +
    ("value.deserializer" -> "org.apache.kafka.common.serialization.StringDeserializer") +
    ("group.id" -> "my_group") +
    ("auto.offset.reset" -> "earliest") +
    ("enable.auto.commit" -> "false")

  val consumer = KafkaConsumer.create(vertx, config)
}
  1. Download vertx-core: wget http://central.maven.org/maven2/io/vertx/vertx-core/3.5.1/vertx-core-3.5.1.jar
  2. Download vertx-kafka-client: wget http://central.maven.org/maven2/io/vertx/vertx-kafka-client/3.5.1/vertx-kafka-client-3.5.1.jar
  3. Try to compile the example:
$ scalac -classpath vertx-core-3.5.1.jar:vertx-kafka-client-3.5.1.jar Hello.scala
Hello.scala:15: error: Class org.apache.kafka.clients.consumer.Consumer not found - continuing with a stub.
  val consumer = KafkaConsumer.create(vertx, config)
                 ^
Hello.scala:15: error: overloaded method value create with alternatives:
  [K, V](x$1: io.vertx.core.Vertx, x$2: java.util.Properties)io.vertx.kafka.client.consumer.KafkaConsumer[K,V] <and>
  [K, V](x$1: io.vertx.core.Vertx, x$2: java.util.Map[String,String])io.vertx.kafka.client.consumer.KafkaConsumer[K,V] <and>
  [K, V](x$1: io.vertx.core.Vertx, x$2: org.apache.kafka.clients.consumer.Consumer[K,V])io.vertx.kafka.client.consumer.KafkaConsumer[K,V]
 cannot be applied to (io.vertx.core.Vertx, scala.collection.immutable.Map[String,String])
  val consumer = KafkaConsumer.create(vertx, config)
                               ^
two errors found
 $ scala -version
Scala code runner version 2.12.4 -- Copyright 2002-2017, LAMP/EPFL and Lightbend, Inc.

I wounder i should use vertx-kafka-client-scala_2.12 dependency as well, but it is not even mentioned in the documentation section.

Sammers21 avatar Mar 13 '18 11:03 Sammers21