From d2ad19e77f9f5c337b0883323c650588dac3fa1b Mon Sep 17 00:00:00 2001 From: Aki Yoshida Date: Tue, 15 Dec 2020 23:36:36 +0100 Subject: [PATCH] generate scala 2.12 and 2.13 jars; switch to use wget to get jars for examples --- README.md | 2 +- {assembly => examples}/examples.xml | 4 +- examples/persons1/Makefile | 4 +- examples/persons1/libs.txt | 1 + examples/persons1/pom.xml | 48 ----- examples/persons1db/Makefile | 4 +- examples/persons1db/libs.txt | 2 + examples/persons1db/pom.xml | 53 ------ examples/persons1ds/Makefile | 4 +- examples/persons1ds/libs.txt | 1 + examples/persons1ds/pom.xml | 48 ----- examples/persons3/Makefile | 5 +- examples/persons3/libs.txt | 24 +++ examples/persons3/pom.xml | 163 ----------------- examples/persons4db/Makefile | 4 +- examples/persons4db/libs.txt | 25 +++ examples/persons4db/pom.xml | 168 ------------------ examples/persons4ds/Makefile | 4 +- examples/persons4ds/libs.txt | 24 +++ examples/persons4ds/pom.xml | 163 ----------------- examples/pom.xml | 41 +++++ modules/scala_2.12/pom.xml | 68 +++++++ modules/scala_2.13/pom.xml | 68 +++++++ pom.xml | 98 ++-------- .../connect/config/hana/HANAParameters.scala | 4 +- .../sink/hana/HANASinkRecordsCollector.scala | 6 +- .../kafka/connect/sink/hana/HANAWriter.scala | 10 +- .../kafka/utils/GenericSchemaBuilder.scala | 10 +- .../source/HANASourceTaskUpdateTest.scala | 36 ++-- 29 files changed, 321 insertions(+), 771 deletions(-) rename {assembly => examples}/examples.xml (97%) create mode 100644 examples/persons1/libs.txt delete mode 100644 examples/persons1/pom.xml create mode 100644 examples/persons1db/libs.txt delete mode 100644 examples/persons1db/pom.xml create mode 100644 examples/persons1ds/libs.txt delete mode 100644 examples/persons1ds/pom.xml create mode 100644 examples/persons3/libs.txt delete mode 100644 examples/persons3/pom.xml create mode 100644 examples/persons4db/libs.txt delete mode 100644 examples/persons4db/pom.xml create mode 100644 examples/persons4ds/libs.txt delete mode 100644 examples/persons4ds/pom.xml create mode 100644 examples/pom.xml create mode 100644 modules/scala_2.12/pom.xml create mode 100644 modules/scala_2.13/pom.xml diff --git a/README.md b/README.md index 6c970a7..d7563b7 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ and use the following command. mvn clean install -DskipTests ``` -which should produce the Kafka Connector jar file `kafka-connect-hana-n.n.jar` in the `target` folder, where `n.n` corresponds to the current version. +which should produce the Kafka Connector jar file `kafka-connector-hana_m-n.jar` in the `modules/scala_m/target` folder, where `m` corresponds to Scala binary version and `n` corresponds to the connector version. **Include the Jdbc Jar** diff --git a/assembly/examples.xml b/examples/examples.xml similarity index 97% rename from assembly/examples.xml rename to examples/examples.xml index 43626ef..3437e87 100644 --- a/assembly/examples.xml +++ b/examples/examples.xml @@ -8,7 +8,7 @@ - . + .. kafka-connector-hana-examples-${project.version} LICENSE @@ -16,7 +16,7 @@ - examples + . kafka-connector-hana-examples-${project.version} README.* diff --git a/examples/persons1/Makefile b/examples/persons1/Makefile index f85aa8d..3da76b2 100644 --- a/examples/persons1/Makefile +++ b/examples/persons1/Makefile @@ -4,8 +4,10 @@ # DOCKER_TAG ?= latest +REPO_URL = https://repo1.maven.org/maven2 .PHONY: get_libs get_libs: @echo "Getting jar files into target ..." - @mvn install + @mkdir -p target + @while read -r line; do wget $(REPO_URL)/$$line -P target; done - - com.sap.kafka.connect.examples - 0.9.0-SNAPSHOT - 4.0.0 - persons1-libs - pom - - - - - - - com.sap.kafka.connect - kafka-connector-hana - ${project.version} - - - com.sap.cloud.db.jdbc - ngdbc - 2.5.49 - - - - - - org.apache.maven.plugins - maven-dependency-plugin - 3.1.2 - - - copy-dependencies - package - - copy-dependencies - - - true - target - - - - - - - diff --git a/examples/persons1db/Makefile b/examples/persons1db/Makefile index 66e4c77..56f697c 100644 --- a/examples/persons1db/Makefile +++ b/examples/persons1db/Makefile @@ -5,11 +5,13 @@ # DOCKER_TAG ?= latest +REPO_URL = https://repo1.maven.org/maven2 .PHONY: get_libs get_libs: @echo "Getting jar files into target ..." - @mvn install + @mkdir -p target + @while read -r line; do wget $(REPO_URL)/$$line -P target; done - - com.sap.kafka.connect.examples - 0.9.0-SNAPSHOT - 4.0.0 - persons1db-libs - pom - - - - - - - com.sap.kafka.connect - kafka-connector-hana - ${project.version} - - - com.sap.cloud.db.jdbc - ngdbc - 2.5.49 - - - com.google.guava - guava - 29.0-jre - - - - - - org.apache.maven.plugins - maven-dependency-plugin - 3.1.2 - - - copy-dependencies - package - - copy-dependencies - - - true - target - - - - - - - diff --git a/examples/persons1ds/Makefile b/examples/persons1ds/Makefile index 05a7dc4..cdc6926 100644 --- a/examples/persons1ds/Makefile +++ b/examples/persons1ds/Makefile @@ -5,11 +5,13 @@ # DOCKER_TAG ?= latest +REPO_URL = https://repo1.maven.org/maven2 .PHONY: get_libs get_libs: @echo "Getting jar files into target ..." - @mvn install + @mkdir -p target + @while read -r line; do wget $(REPO_URL)/$$line -P target; done - - com.sap.kafka.connect.examples - 0.9.0-SNAPSHOT - 4.0.0 - persons1ds-libs - pom - - - - - - - com.sap.kafka.connect - kafka-connector-hana - ${project.version} - - - com.sap.cloud.db.jdbc - ngdbc - 2.5.49 - - - - - - org.apache.maven.plugins - maven-dependency-plugin - 3.1.2 - - - copy-dependencies - package - - copy-dependencies - - - true - target - - - - - - - diff --git a/examples/persons3/Makefile b/examples/persons3/Makefile index f85aa8d..1448b96 100644 --- a/examples/persons3/Makefile +++ b/examples/persons3/Makefile @@ -4,8 +4,11 @@ # DOCKER_TAG ?= latest +REPO_URL = https://repo1.maven.org/maven2 .PHONY: get_libs get_libs: @echo "Getting jar files into target ..." - @mvn install + @mkdir -p target + @while read -r line; do wget $(REPO_URL)/$$line -P target; done - - com.sap.kafka.connect.examples - 0.9.0-SNAPSHOT - 4.0.0 - persons3-libs - pom - - - - - - - com.sap.kafka.connect - kafka-connector-hana - ${project.version} - - - com.sap.cloud.db.jdbc - ngdbc - 2.5.49 - - - io.apicurio - apicurio-registry-client - 1.2.3.Final - - - io.apicurio - apicurio-registry-common - 1.2.3.Final - - - io.apicurio - apicurio-registry-utils-converter - 1.2.3.Final - - - io.apicurio - apicurio-registry-utils-serde - 1.2.3.Final - - - org.eclipse - yasson - 1.0.3 - - - javax.interceptor - javax.interceptor-api - 1.2 - - - jakarta.json.bind - jakarta.json.bind-api - 1.0.2 - - - org.glassfish.jersey.media - jersey-media-json-binding - 2.29.1 - - - jakarta.json - jakarta.json-api - 1.1.5 - - - org.glassfish - jakarta.json - 1.1.5 - - - org.apache.avro - avro - 1.9.2 - - - javax.enterprise - cdi-api - 2.0 - - - org.apache.geronimo.config - geronimo-config-impl - 1.2.2 - - - org.glassfish.jersey.ext.cdi - jersey-cdi1x - 2.29.1 - - - org.glassfish.jersey.core - jersey-client - 2.29.1 - - - org.glassfish.jersey.core - jersey-common - 2.29.1 - - - org.glassfish.jersey.inject - jersey-hk2 - 2.29.1 - - - org.glassfish.jersey.media - jersey-media-jaxb - 2.29.1 - - - org.glassfish.jersey.ext.microprofile - jersey-mp-config - 2.29.1 - - - org.glassfish.jersey.ext.microprofile - jersey-mp-rest-client - 2.29.1 - - - org.glassfish.jersey.core - jersey-server - 2.29.1 - - - org.eclipse.microprofile.config - microprofile-config-api - 1.4 - - - org.eclipse.microprofile.rest.client - microprofile-rest-client-api - 1.4.0 - - - - - - org.apache.maven.plugins - maven-dependency-plugin - 3.1.2 - - - copy-dependencies - package - - copy-dependencies - - - true - target - - - - - - - diff --git a/examples/persons4db/Makefile b/examples/persons4db/Makefile index 3dde2d0..e4b56e7 100644 --- a/examples/persons4db/Makefile +++ b/examples/persons4db/Makefile @@ -5,11 +5,13 @@ # DOCKER_TAG ?= latest +REPO_URL = https://repo1.maven.org/maven2 .PHONY: get_libs get_libs: @echo "Getting jar files into target ..." - @mvn install + @mkdir -p target + @while read -r line; do wget $(REPO_URL)/$$line -P target; done - - com.sap.kafka.connect.examples - 1.0.0-SNAPSHOT - 4.0.0 - persons4db-libs - pom - - - - - - - com.sap.kafka.connect - kafka-connector-hana - ${project.version} - - - com.sap.cloud.db.jdbc - ngdbc - 2.5.49 - - - com.google.guava - guava - 29.0-jre - - - io.apicurio - apicurio-registry-client - 1.2.3.Final - - - io.apicurio - apicurio-registry-common - 1.2.3.Final - - - io.apicurio - apicurio-registry-utils-converter - 1.2.3.Final - - - io.apicurio - apicurio-registry-utils-serde - 1.2.3.Final - - - org.eclipse - yasson - 1.0.3 - - - javax.interceptor - javax.interceptor-api - 1.2 - - - jakarta.json.bind - jakarta.json.bind-api - 1.0.2 - - - org.glassfish.jersey.media - jersey-media-json-binding - 2.29.1 - - - jakarta.json - jakarta.json-api - 1.1.5 - - - org.glassfish - jakarta.json - 1.1.5 - - - org.apache.avro - avro - 1.9.2 - - - javax.enterprise - cdi-api - 2.0 - - - org.apache.geronimo.config - geronimo-config-impl - 1.2.2 - - - org.glassfish.jersey.ext.cdi - jersey-cdi1x - 2.29.1 - - - org.glassfish.jersey.core - jersey-client - 2.29.1 - - - org.glassfish.jersey.core - jersey-common - 2.29.1 - - - org.glassfish.jersey.inject - jersey-hk2 - 2.29.1 - - - org.glassfish.jersey.media - jersey-media-jaxb - 2.29.1 - - - org.glassfish.jersey.ext.microprofile - jersey-mp-config - 2.29.1 - - - org.glassfish.jersey.ext.microprofile - jersey-mp-rest-client - 2.29.1 - - - org.glassfish.jersey.core - jersey-server - 2.29.1 - - - org.eclipse.microprofile.config - microprofile-config-api - 1.4 - - - org.eclipse.microprofile.rest.client - microprofile-rest-client-api - 1.4.0 - - - - - - org.apache.maven.plugins - maven-dependency-plugin - 3.1.2 - - - copy-dependencies - package - - copy-dependencies - - - true - target - - - - - - - diff --git a/examples/persons4ds/Makefile b/examples/persons4ds/Makefile index e15bc59..8dc29c3 100644 --- a/examples/persons4ds/Makefile +++ b/examples/persons4ds/Makefile @@ -5,11 +5,13 @@ # DOCKER_TAG ?= latest +REPO_URL = https://repo1.maven.org/maven2 .PHONY: get_libs get_libs: @echo "Getting jar files into target ..." - @mvn install + @mkdir -p target + @while read -r line; do wget $(REPO_URL)/$$line -P target; done - - com.sap.kafka.connect.examples - 0.9.0-SNAPSHOT - 4.0.0 - persons4ds-libs - pom - - - - - - - com.sap.kafka.connect - kafka-connector-hana - ${project.version} - - - com.sap.cloud.db.jdbc - ngdbc - 2.5.49 - - - io.apicurio - apicurio-registry-client - 1.2.3.Final - - - io.apicurio - apicurio-registry-common - 1.2.3.Final - - - io.apicurio - apicurio-registry-utils-converter - 1.2.3.Final - - - io.apicurio - apicurio-registry-utils-serde - 1.2.3.Final - - - org.eclipse - yasson - 1.0.3 - - - javax.interceptor - javax.interceptor-api - 1.2 - - - jakarta.json.bind - jakarta.json.bind-api - 1.0.2 - - - org.glassfish.jersey.media - jersey-media-json-binding - 2.29.1 - - - jakarta.json - jakarta.json-api - 1.1.5 - - - org.glassfish - jakarta.json - 1.1.5 - - - org.apache.avro - avro - 1.9.2 - - - javax.enterprise - cdi-api - 2.0 - - - org.apache.geronimo.config - geronimo-config-impl - 1.2.2 - - - org.glassfish.jersey.ext.cdi - jersey-cdi1x - 2.29.1 - - - org.glassfish.jersey.core - jersey-client - 2.29.1 - - - org.glassfish.jersey.core - jersey-common - 2.29.1 - - - org.glassfish.jersey.inject - jersey-hk2 - 2.29.1 - - - org.glassfish.jersey.media - jersey-media-jaxb - 2.29.1 - - - org.glassfish.jersey.ext.microprofile - jersey-mp-config - 2.29.1 - - - org.glassfish.jersey.ext.microprofile - jersey-mp-rest-client - 2.29.1 - - - org.glassfish.jersey.core - jersey-server - 2.29.1 - - - org.eclipse.microprofile.config - microprofile-config-api - 1.4 - - - org.eclipse.microprofile.rest.client - microprofile-rest-client-api - 1.4.0 - - - - - - org.apache.maven.plugins - maven-dependency-plugin - 3.1.2 - - - copy-dependencies - package - - copy-dependencies - - - true - target - - - - - - - diff --git a/examples/pom.xml b/examples/pom.xml new file mode 100644 index 0000000..7586224 --- /dev/null +++ b/examples/pom.xml @@ -0,0 +1,41 @@ + + + 4.0.0 + com.sap.kafka.connect + kafka-connector-hana-examples + 0.9.0-SNAPSHOT + pom + + + com.sap.kafka.connect + kafka-connector-hana + 0.9.0-SNAPSHOT + .. + + + + + + + maven-assembly-plugin + 3.3.0 + + + examples.xml + + + + + create-archive + package + + single + + + + + + + + diff --git a/modules/scala_2.12/pom.xml b/modules/scala_2.12/pom.xml new file mode 100644 index 0000000..cf2247a --- /dev/null +++ b/modules/scala_2.12/pom.xml @@ -0,0 +1,68 @@ + + + 4.0.0 + com.sap.kafka.connect + kafka-connector-hana_2.12 + 0.9.0-SNAPSHOT + + + com.sap.kafka.connect + kafka-connector-hana + 0.9.0-SNAPSHOT + ../.. + + + + 2.12.11 + 2.12 + + + + + + org.scala-lang + scala-library + ${scala.version} + + + + + org.apache.kafka + kafka_${scala.binary.version} + ${kafka.version} + + + + + org.scalatest + scalatest_${scala.binary.version} + ${scalatest.version} + test + + + + + + + org.scalatest + scalatest-maven-plugin + 1.0 + + ${project.build.directory}/surefire-reports + . + TestSuite.txt + + + + test + test + + test + + + + + + + diff --git a/modules/scala_2.13/pom.xml b/modules/scala_2.13/pom.xml new file mode 100644 index 0000000..468a46b --- /dev/null +++ b/modules/scala_2.13/pom.xml @@ -0,0 +1,68 @@ + + + 4.0.0 + com.sap.kafka.connect + kafka-connector-hana_2.13 + 0.9.0-SNAPSHOT + + + com.sap.kafka.connect + kafka-connector-hana + 0.9.0-SNAPSHOT + ../.. + + + + 2.13.4 + 2.13 + + + + + + org.scala-lang + scala-library + ${scala.version} + + + + + org.apache.kafka + kafka_${scala.binary.version} + ${kafka.version} + + + + + org.scalatest + scalatest_${scala.binary.version} + ${scalatest.version} + test + + + + + + + org.scalatest + scalatest-maven-plugin + 1.0 + + ${project.build.directory}/surefire-reports + . + TestSuite.txt + + + + test + + test + + + + + + + + diff --git a/pom.xml b/pom.xml index 3b201f0..27dc999 100644 --- a/pom.xml +++ b/pom.xml @@ -5,6 +5,7 @@ com.sap.kafka.connect kafka-connector-hana 0.9.0-SNAPSHOT + pom scm:git:git://github.com/SAP/kafka-connect-sap.git @@ -31,8 +32,6 @@ 29.0-jre 3.6.0 2.4.1 - 2.12.11 - 2.12 3.1.2 1.7.21 @@ -46,20 +45,8 @@ - - - org.scala-lang - scala-library - ${scala.version} - - - - - org.apache.kafka - kafka_${scala.binary.version} - ${kafka.version} - + org.apache.kafka connect-api @@ -93,12 +80,6 @@ ${mockito-core.version} test - - org.scalatest - scalatest_${scala.binary.version} - ${scalatest.version} - test - org.slf4j slf4j-simple @@ -107,18 +88,18 @@ - src/main/scala - src/test/scala + ../../src/main/scala + ../../src/test/scala - src/test/resources + ../../src/test/resources true **/*.properties - src/test/resources + ../../src/test/resources false **/*.properties @@ -142,7 +123,7 @@ ${scala.version} - -target:jvm-1.5 + -target:jvm-1.8 @@ -158,29 +139,6 @@ - - @@ -191,45 +149,13 @@ true - - - org.scalatest - scalatest-maven-plugin - 1.0 - - ${project.build.directory}/surefire-reports - . - TestSuite.txt - - - - test - - test - - - - - - maven-assembly-plugin - 3.3.0 - - - assembly/examples.xml - - - - - create-archive - package - - single - - - - + + modules/scala_2.12 + modules/scala_2.13 + examples + release diff --git a/src/main/scala/com/sap/kafka/connect/config/hana/HANAParameters.scala b/src/main/scala/com/sap/kafka/connect/config/hana/HANAParameters.scala index 0aacbdd..3e207e4 100644 --- a/src/main/scala/com/sap/kafka/connect/config/hana/HANAParameters.scala +++ b/src/main/scala/com/sap/kafka/connect/config/hana/HANAParameters.scala @@ -5,7 +5,7 @@ import java.util import com.sap.kafka.client.hana.HANAConfigMissingException import com.sap.kafka.connect.config.BaseParameters -import scala.collection.JavaConversions._ +import scala.collection.JavaConverters._ object HANAParameters extends BaseParameters { @@ -27,6 +27,6 @@ object HANAParameters extends BaseParameters { " HANA DB password must be specified in 'connection.password' parameter") } - HANAConfig(props.toMap) + HANAConfig(props.asScala.toMap) } } \ No newline at end of file diff --git a/src/main/scala/com/sap/kafka/connect/sink/hana/HANASinkRecordsCollector.scala b/src/main/scala/com/sap/kafka/connect/sink/hana/HANASinkRecordsCollector.scala index 6b68a50..9e4a58f 100644 --- a/src/main/scala/com/sap/kafka/connect/sink/hana/HANASinkRecordsCollector.scala +++ b/src/main/scala/com/sap/kafka/connect/sink/hana/HANASinkRecordsCollector.scala @@ -13,7 +13,7 @@ import org.apache.kafka.connect.data.{Field, Schema} import org.apache.kafka.connect.sink.SinkRecord import org.slf4j.{Logger, LoggerFactory} -import scala.collection.JavaConversions._ +import scala.collection.JavaConverters._ class HANASinkRecordsCollector(var tableName: String, client: HANAJdbcClient, @@ -65,7 +65,7 @@ class HANASinkRecordsCollector(var tableName: String, client: HANAJdbcClient, // } if (recordSchema.valueSchema != null) { - for (field <- recordSchema.valueSchema.fields) { + for (field <- recordSchema.valueSchema.fields.asScala) { val fieldSchema: Schema = field.schema val fieldAttr = metaAttr(field.name(), HANAJdbcTypeConverter.convertToHANAType(fieldSchema), 1, 0, 0, isSigned = false) @@ -113,7 +113,7 @@ class HANASinkRecordsCollector(var tableName: String, client: HANAJdbcClient, // } if (recordSchema.valueSchema != null) { - for (field <- recordSchema.valueSchema.fields) { + for (field <- recordSchema.valueSchema.fields.asScala) { val fieldSchema: Schema = field.schema val fieldAttr = metaAttr(field.name(), HANAJdbcTypeConverter.convertToHANAType(fieldSchema), 1, 0, 0, isSigned = false) diff --git a/src/main/scala/com/sap/kafka/connect/sink/hana/HANAWriter.scala b/src/main/scala/com/sap/kafka/connect/sink/hana/HANAWriter.scala index c132826..a7b98af 100644 --- a/src/main/scala/com/sap/kafka/connect/sink/hana/HANAWriter.scala +++ b/src/main/scala/com/sap/kafka/connect/sink/hana/HANAWriter.scala @@ -11,7 +11,7 @@ import com.sap.kafka.connect.sink.BaseWriter import org.apache.kafka.connect.sink.SinkRecord import org.slf4j.{Logger, LoggerFactory} -import scala.collection.JavaConversions._ +import scala.collection.JavaConverters._ class HANAWriter(config: HANAConfig, hanaClient: HANAJdbcClient, @@ -39,9 +39,9 @@ class HANAWriter(config: HANAConfig, hanaClient: HANAJdbcClient, val topicMap = Multimaps.index(records, new Function[SinkRecord, String] { override def apply(sinkRecord: SinkRecord) = sinkRecord.topic() - }).asMap().toMap + }).asMap() - for ((topic, recordsPerTopic) <- topicMap) { + for ((topic, recordsPerTopic) <- topicMap.asScala) { var table = config.topicProperties(topic).get("table.name").get if (table.contains("${topic}")) { table = table.replace("${topic}", topic) @@ -53,12 +53,12 @@ class HANAWriter(config: HANAConfig, hanaClient: HANAJdbcClient, case None => val tableRecordsCollector = new HANASinkRecordsCollector(table, hanaClient, connection, config) tableCache.put(table, tableRecordsCollector) - tableRecordsCollector.add(recordsPerTopic.toSeq) + tableRecordsCollector.add(collectionAsScalaIterableConverter(recordsPerTopic).asScala.toSeq) case Some(tableRecordsCollector) => if (config.autoSchemaUpdateOn) { tableRecordsCollector.tableConfigInitialized = false } - tableRecordsCollector.add(recordsPerTopic.toSeq) + tableRecordsCollector.add(collectionAsScalaIterableConverter(recordsPerTopic).asScala.toSeq) } } flush(tableCache.toMap) diff --git a/src/main/scala/com/sap/kafka/utils/GenericSchemaBuilder.scala b/src/main/scala/com/sap/kafka/utils/GenericSchemaBuilder.scala index 9f8d255..4d7da15 100644 --- a/src/main/scala/com/sap/kafka/utils/GenericSchemaBuilder.scala +++ b/src/main/scala/com/sap/kafka/utils/GenericSchemaBuilder.scala @@ -4,7 +4,8 @@ import com.sap.kafka.client.MetaSchema import org.apache.kafka.connect.data._ import org.apache.kafka.connect.data.Schema.Type -import scala.collection.JavaConversions._ +import scala.collection.JavaConverters._ +import scala.collection.mutable trait GenericSchemaBuilder { @@ -50,10 +51,9 @@ trait GenericSchemaBuilder { private def getLogicalTypeFromFieldSchema(fieldSchema: Schema): String = { val logicalType = fieldSchema.name() - var parameters = Map[String, String]() - - if (fieldSchema.parameters() != null) { - parameters = fieldSchema.parameters().toMap + val parameters = fieldSchema.parameters match { + case null => Map[String, String]() + case _ => fieldSchema.parameters().asScala } logicalType match { diff --git a/src/test/scala/com/sap/kafka/connect/source/HANASourceTaskUpdateTest.scala b/src/test/scala/com/sap/kafka/connect/source/HANASourceTaskUpdateTest.scala index 6094c18..034eecd 100644 --- a/src/test/scala/com/sap/kafka/connect/source/HANASourceTaskUpdateTest.scala +++ b/src/test/scala/com/sap/kafka/connect/source/HANASourceTaskUpdateTest.scala @@ -9,7 +9,7 @@ import com.sap.kafka.connect.source.hana.HANASourceTask import org.apache.kafka.connect.data.{Field, Schema, SchemaBuilder, Struct} import org.scalatest.BeforeAndAfterEach -import scala.collection.JavaConversions._ +import scala.collection.JavaConverters._ object Field extends Enumeration { val VALUE, TIMESTAMP_VALUE, @@ -104,7 +104,7 @@ class HANASourceTaskUpdateTest extends HANASourceTaskTestBase var records = task.poll() assert(records.size() === 1) - records.toList.foreach(record => { + records.forEach(record => { compareSchema(expectedSchema, record.valueSchema()) assert(record.value().isInstanceOf[Struct]) compareData(expectedData, record.value().asInstanceOf[Struct], @@ -117,7 +117,7 @@ class HANASourceTaskUpdateTest extends HANASourceTaskTestBase assert(records.size() === 2) var count = 1 - records.toList.foreach(record => { + records.forEach(record => { compareSchema(expectedSchema, record.valueSchema()) assert(record.value().isInstanceOf[Struct]) expectedData = new Struct(expectedSchema) @@ -160,7 +160,7 @@ class HANASourceTaskUpdateTest extends HANASourceTaskTestBase assert(records.size() === 1) - records.foreach(record => { + records.forEach(record => { if (record.topic() == TOPIC) { compareSchema(expectedSchemaForSingleTable, record.valueSchema()) assert(record.value().isInstanceOf[Struct]) @@ -194,7 +194,7 @@ class HANASourceTaskUpdateTest extends HANASourceTaskTestBase var records = queryLoadTask.poll() assert(records.size() === 1) - records.toList.foreach(record => { + records.forEach(record => { compareSchema(expectedSchema, record.valueSchema()) assert(record.value().isInstanceOf[Struct]) compareData(expectedData, record.value().asInstanceOf[Struct], @@ -207,7 +207,7 @@ class HANASourceTaskUpdateTest extends HANASourceTaskTestBase assert(records.size() === 2) var count = 1 - records.toList.foreach(record => { + records.forEach(record => { compareSchema(expectedSchema, record.valueSchema()) assert(record.value().isInstanceOf[Struct]) expectedData = new Struct(expectedSchema) @@ -240,7 +240,7 @@ class HANASourceTaskUpdateTest extends HANASourceTaskTestBase var records = incrLoadTask.poll() assert(records.size() === 1) - records.toList.foreach(record => { + records.forEach(record => { compareSchema(expectedSchema, record.valueSchema()) assert(record.value().isInstanceOf[Struct]) compareData(expectedData, record.value().asInstanceOf[Struct], @@ -252,7 +252,7 @@ class HANASourceTaskUpdateTest extends HANASourceTaskTestBase // because this only takes the delta assert(records.size() === 1) - records.toList.foreach(record => { + records.forEach(record => { compareSchema(expectedSchema, record.valueSchema()) assert(record.value().isInstanceOf[Struct]) @@ -286,7 +286,7 @@ class HANASourceTaskUpdateTest extends HANASourceTaskTestBase var records = incr2LoadTask.poll() assert(records.size() === 1) - records.toList.foreach(record => { + records.forEach(record => { compareSchema(expectedSchema, record.valueSchema()) assert(record.value().isInstanceOf[Struct]) compareData(expectedData, record.value().asInstanceOf[Struct], @@ -298,7 +298,7 @@ class HANASourceTaskUpdateTest extends HANASourceTaskTestBase // because this only takes the delta assert(records.size() === 1) - records.toList.foreach(record => { + records.forEach(record => { compareSchema(expectedSchema, record.valueSchema()) assert(record.value().isInstanceOf[Struct]) @@ -332,7 +332,7 @@ class HANASourceTaskUpdateTest extends HANASourceTaskTestBase var records = incrQueryLoadTask.poll() assert(records.size() === 1) - records.toList.foreach(record => { + records.forEach(record => { compareSchema(expectedSchema, record.valueSchema()) assert(record.value().isInstanceOf[Struct]) compareData(expectedData, record.value().asInstanceOf[Struct], @@ -344,7 +344,7 @@ class HANASourceTaskUpdateTest extends HANASourceTaskTestBase // because this only takes the delta assert(records.size() === 1) - records.toList.foreach(record => { + records.forEach(record => { compareSchema(expectedSchema, record.valueSchema()) assert(record.value().isInstanceOf[Struct]) @@ -360,14 +360,14 @@ class HANASourceTaskUpdateTest extends HANASourceTaskTestBase } private def compareSchema(expectedSchema: Schema, actualSchema: Schema): Unit = { - val expectedFields = expectedSchema.fields().toList - val actualFields = actualSchema.fields().toList + val expectedFields = expectedSchema.fields() + val actualFields = actualSchema.fields() assert(expectedFields.size === actualFields.size) var count = 0 - expectedFields.foreach(field => { - assert(field.name() === actualFields(count).name()) - assert(field.schema() === actualFields(count).schema()) + expectedFields.forEach(field => { + assert(field.name() === actualFields.get(count).name()) + assert(field.schema() === actualFields.get(count).schema()) count = count + 1 }) } @@ -376,7 +376,7 @@ class HANASourceTaskUpdateTest extends HANASourceTaskTestBase schema: Schema): Unit = { val fields = schema.fields() - fields.foreach(field => { + fields.forEach(field => { assert(expectedData.get(field.name()) === actualData.get(field.name())) })