kafka-connect-transform-common
kafka-connect-transform-common copied to clipboard
Unable to instantiate AdjustPrecisionAndScale: Plugin class must have a no-args constructor, and cannot be a non-static inner class
Hi,
I am trying to update our connectors and transform packages to resolve security vulnerabilities, so i updated my cp-kafka-connect-base:7.6.0 and jcustenborder/kafka-connect-transform-common:0.1.0.58 .
But now when i run it i get class must have a no-args constructor, and cannot be a non-static inner class error for following classes:
- AdjustPrecisionAndScale
- HeaderToField
- SetMaximumPrecision
- CloudEventsConverter
I am not using these transformers so i could ignore it. I am only using AddPrefix,changeTopicCase transformers.
Is there a up coming release that will work with the new base image?
Full Docker file:
FROM confluentinc/cp-kafka-connect-base:7.6.0
USER root
# Run updates
RUN dnf -y upgrade && dnf clean all
# Update and install find for determing SSL configuration in entrypoint
RUN dnf -y install findutils jq
# Install Plugin
# Install Debezium Mysql connector from ConfluentHub
RUN confluent-hub install --no-prompt debezium/debezium-connector-mysql:1.9.7
RUN confluent-hub install --no-prompt jcustenborder/kafka-connect-transform-common:0.1.0.58
USER appuser
ENV CONNECTOR_NAME='debezium_mysql_source'
ENV CONNECT_REST_PORT=8083
ENV CONNECT_GROUP_UNIQUE_IDENTIFIER='namdebezium'
ENV CONNECT_KEY_CONVERTER='org.apache.kafka.connect.json.JsonConverter'
ENV CONNECT_VALUE_CONVERTER='org.apache.kafka.connect.json.JsonConverter'
ENV CONNECT_PLUGIN_PATH='/usr/share/java,/usr/share/confluent-hub-components/'
ENV CONNECT_SECURITY_PROTOCOL='SSL'
ENV CONNECT_CONFIG_PROVIDERS='file'
ENV CONNECT_CONFIG_PROVIDERS_FILE_CLASS='org.apache.kafka.common.config.provider.FileConfigProvider'
ENV CONNECT_CONSUMER_SECURITY_PROTOCOL='SSL'
ENV CONNECT_PRODUCER_SECURITY_PROTOCOL='SSL'
ENV CONNECT_CONSUMER_REQUEST_TIMEOUT_MS='20000'
ENV CONNECT_CONSUMER_RETRY_BACKOFF_MS='500'
ENV DATABASE_SERVER_ID='6000'
ENV DATABASE_TIMEZONE='America/New_York'
ENV DECIMAL_HANDLING_MODE='precise'
ENV Environment='dev'
ENV MAX_TASKS=1
ENV INCONSISTENT_SCHEMA_HANDLING_MODE='fail'
ENV CONNECT_REST_ADVERTISED_HOST_NAME='kafka-connect-debezium-mysql-source'
# Mitigate CVE-2021-44228
# https://msrc-blog.microsoft.com/2021/12/11/microsofts-response-to-cve-2021-44228-apache-log4j2/
ENV LOG4J_FORMAT_MSG_NO_LOOKUPS="true"
# Configure default log levels
ENV CONNECT_LOG4J_ROOT_LOGLEVEL="ERROR"
ENV CONNECT_LOG4J_LOGGERS="org.I0Itec.zkclient=ERROR,org.reflections=ERROR,org.eclipse.jetty=ERROR,kafka=ERROR,org.apache.kafka=ERROR,org.apache.zookeeper=ERROR,org.apache.kafka.connect.runtime.WorkerSourceTask=ERROR"
ENV CONNECT_GROUP_ID="kafka_connect_${CONNECTOR_NAME}_${CONNECT_GROUP_UNIQUE_IDENTIFIER}"
ENV CONNECT_CONFIG_STORAGE_TOPIC="_${CONNECT_GROUP_ID}-configs"
ENV CONNECT_OFFSET_STORAGE_TOPIC="_${CONNECT_GROUP_ID}-offsets"
ENV CONNECT_STATUS_STORAGE_TOPIC="_${CONNECT_GROUP_ID}-status"
# Connector topic config
ENV DATABASE_HISTORY_KAFKA_TOPIC="_${DATABASE_SERVER_NAME}_history"
EXPOSE ${CONNECT_REST_PORT}
Full Error Log:
===> Check if Kafka is healthy ...
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/share/java/kafka/slf4j-reload4j-1.7.36.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/share/java/cp-base-new/slf4j-reload4j-1.7.36.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Reload4jLoggerFactory]
Using log4j config /etc/cp-base-new/log4j.properties
===> Launching ...
===> Launching kafka-connect ...
[2024-04-17 08:24:17,691] ERROR Failed to discover Transformation in /usr/share/confluent-hub-components/jcustenborder-kafka-connect-transform-common: Unable to instantiate AdjustPrecisionAndScale: Plugin class must have a no-args constructor, and cannot be a non-static inner class (org.apache.kafka.connect.runtime.isolation.ReflectionScanner)
java.lang.NoSuchMethodException: com.github.jcustenborder.kafka.connect.transform.common.AdjustPrecisionAndScale.<init>()
at java.base/java.lang.Class.getConstructor0(Class.java:3349)
at java.base/java.lang.Class.getDeclaredConstructor(Class.java:2553)
at org.apache.kafka.connect.runtime.isolation.ReflectionScanner.versionFor(ReflectionScanner.java:73)
at org.apache.kafka.connect.runtime.isolation.ReflectionScanner.getPluginDesc(ReflectionScanner.java:136)
at org.apache.kafka.connect.runtime.isolation.ReflectionScanner.getTransformationPluginDesc(ReflectionScanner.java:106)
at org.apache.kafka.connect.runtime.isolation.ReflectionScanner.scanPlugins(ReflectionScanner.java:91)
at org.apache.kafka.connect.runtime.isolation.PluginScanner.scanUrlsAndAddPlugins(PluginScanner.java:79)
at org.apache.kafka.connect.runtime.isolation.PluginScanner.discoverPlugins(PluginScanner.java:67)
at org.apache.kafka.connect.runtime.isolation.Plugins.initLoaders(Plugins.java:90)
at org.apache.kafka.connect.runtime.isolation.Plugins.<init>(Plugins.java:74)
at org.apache.kafka.connect.runtime.isolation.Plugins.<init>(Plugins.java:64)
at org.apache.kafka.connect.cli.AbstractConnectCli.startConnect(AbstractConnectCli.java:121)
at org.apache.kafka.connect.cli.AbstractConnectCli.run(AbstractConnectCli.java:94)
at org.apache.kafka.connect.cli.ConnectDistributed.main(ConnectDistributed.java:116)
[2024-04-17 08:24:17,694] ERROR Failed to discover Transformation in /usr/share/confluent-hub-components/jcustenborder-kafka-connect-transform-common: Unable to instantiate HeaderToField: Plugin class must have a no-args constructor, and cannot be a non-static inner class (org.apache.kafka.connect.runtime.isolation.ReflectionScanner)
java.lang.NoSuchMethodException: com.github.jcustenborder.kafka.connect.transform.common.HeaderToField.<init>()
at java.base/java.lang.Class.getConstructor0(Class.java:3349)
at java.base/java.lang.Class.getDeclaredConstructor(Class.java:2553)
at org.apache.kafka.connect.runtime.isolation.ReflectionScanner.versionFor(ReflectionScanner.java:73)
at org.apache.kafka.connect.runtime.isolation.ReflectionScanner.getPluginDesc(ReflectionScanner.java:136)
at org.apache.kafka.connect.runtime.isolation.ReflectionScanner.getTransformationPluginDesc(ReflectionScanner.java:106)
at org.apache.kafka.connect.runtime.isolation.ReflectionScanner.scanPlugins(ReflectionScanner.java:91)
at org.apache.kafka.connect.runtime.isolation.PluginScanner.scanUrlsAndAddPlugins(PluginScanner.java:79)
at org.apache.kafka.connect.runtime.isolation.PluginScanner.discoverPlugins(PluginScanner.java:67)
at org.apache.kafka.connect.runtime.isolation.Plugins.initLoaders(Plugins.java:90)
at org.apache.kafka.connect.runtime.isolation.Plugins.<init>(Plugins.java:74)
at org.apache.kafka.connect.runtime.isolation.Plugins.<init>(Plugins.java:64)
at org.apache.kafka.connect.cli.AbstractConnectCli.startConnect(AbstractConnectCli.java:121)
at org.apache.kafka.connect.cli.AbstractConnectCli.run(AbstractConnectCli.java:94)
at org.apache.kafka.connect.cli.ConnectDistributed.main(ConnectDistributed.java:116)
[2024-04-17 08:24:17,695] ERROR Failed to discover Transformation in /usr/share/confluent-hub-components/jcustenborder-kafka-connect-transform-common: Unable to instantiate SetMaximumPrecision: Plugin class must have a no-args constructor, and cannot be a non-static inner class (org.apache.kafka.connect.runtime.isolation.ReflectionScanner)
java.lang.NoSuchMethodException: com.github.jcustenborder.kafka.connect.transform.common.SetMaximumPrecision.<init>()
at java.base/java.lang.Class.getConstructor0(Class.java:3349)
at java.base/java.lang.Class.getDeclaredConstructor(Class.java:2553)
at org.apache.kafka.connect.runtime.isolation.ReflectionScanner.versionFor(ReflectionScanner.java:73)
at org.apache.kafka.connect.runtime.isolation.ReflectionScanner.getPluginDesc(ReflectionScanner.java:136)
at org.apache.kafka.connect.runtime.isolation.ReflectionScanner.getTransformationPluginDesc(ReflectionScanner.java:106)
at org.apache.kafka.connect.runtime.isolation.ReflectionScanner.scanPlugins(ReflectionScanner.java:91)
at org.apache.kafka.connect.runtime.isolation.PluginScanner.scanUrlsAndAddPlugins(PluginScanner.java:79)
at org.apache.kafka.connect.runtime.isolation.PluginScanner.discoverPlugins(PluginScanner.java:67)
at org.apache.kafka.connect.runtime.isolation.Plugins.initLoaders(Plugins.java:90)
at org.apache.kafka.connect.runtime.isolation.Plugins.<init>(Plugins.java:74)
at org.apache.kafka.connect.runtime.isolation.Plugins.<init>(Plugins.java:64)
at org.apache.kafka.connect.cli.AbstractConnectCli.startConnect(AbstractConnectCli.java:121)
at org.apache.kafka.connect.cli.AbstractConnectCli.run(AbstractConnectCli.java:94)
at org.apache.kafka.connect.cli.ConnectDistributed.main(ConnectDistributed.java:116)
[2024-04-17 08:24:18,023] ERROR Failed to discover Converter in /usr/share/confluent-hub-components/debezium-debezium-connector-mysql: Unable to instantiate CloudEventsConverter: Failed to statically initialize plugin class (org.apache.kafka.connect.runtime.isolation.ReflectionScanner)
java.lang.ExceptionInInitializerError
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
at org.apache.kafka.connect.runtime.isolation.ReflectionScanner.versionFor(ReflectionScanner.java:73)
at org.apache.kafka.connect.runtime.isolation.ReflectionScanner.getPluginDesc(ReflectionScanner.java:136)
at org.apache.kafka.connect.runtime.isolation.ReflectionScanner.scanPlugins(ReflectionScanner.java:89)
at org.apache.kafka.connect.runtime.isolation.PluginScanner.scanUrlsAndAddPlugins(PluginScanner.java:79)
at org.apache.kafka.connect.runtime.isolation.PluginScanner.discoverPlugins(PluginScanner.java:67)
at org.apache.kafka.connect.runtime.isolation.Plugins.initLoaders(Plugins.java:90)
at org.apache.kafka.connect.runtime.isolation.Plugins.<init>(Plugins.java:74)
at org.apache.kafka.connect.runtime.isolation.Plugins.<init>(Plugins.java:64)
at org.apache.kafka.connect.cli.AbstractConnectCli.startConnect(AbstractConnectCli.java:121)
at org.apache.kafka.connect.cli.AbstractConnectCli.run(AbstractConnectCli.java:94)
at org.apache.kafka.connect.cli.ConnectDistributed.main(ConnectDistributed.java:116)
Caused by: org.apache.kafka.connect.errors.DataException
at io.debezium.converters.CloudEventsConverter.<clinit>(CloudEventsConverter.java:111)
Had a similar issue seting JAVA_OPTS ="-Xmx 2g -Xms 2g" on kafka connect container resolved it
Had a similar issue seting JAVA_OPTS ="-Xmx 2g -Xms 2g" on kafka connect container resolved it
Na, that did not work. I still get the same errors. I added this ENV to my docker compose file.
I'm having the same problem. I find the solution that @rizvnn suggested improbable..
For me, it's an issue of kafka versions..
I'm using kafka-connect-transform-common-0.1.0.58.
I did some testing, and I found that it works for for kafka version 3.5.2, but not >=3.6.0, so I think the plugin might not support kafka >=3.6.0 at this time.
Question for you all. Does the class still work? Looking at the code we have a default constructor on the static class. We do not have a default constructor on the implementation. I think we could just change the declaration of the implementation to abstract to fix it.
Not sure if this works with newer kafka version as connect-utils uses kafka-connect-api 2.8.0. I will experiment with it. Stay tuned.
@jcustenborder With kafka 3.7.0 and your suggested solution I get the following when using connect-utils-0.7.177.jar:
java.lang.NoClassDefFoundError: com/github/jcustenborder/kafka/connect/utils/config/ValidEnum │ │ at com.github.jcustenborder.kafka.connect.transform.common.ChangeCaseConfig.config(ChangeCaseConfig.java:43) │ │ at com.github.jcustenborder.kafka.connect.transform.common.ChangeCase.config(ChangeCase.java:44) │ │ at org.apache.kafka.connect.runtime.ConnectorConfig$2.config(ConnectorConfig.java:364) │ │ at org.apache.kafka.connect.runtime.ConnectorConfig$2.config(ConnectorConfig.java:329) │ │ at org.apache.kafka.connect.runtime.ConnectorConfig$EnrichablePlugin.getConfigDefFromConfigProvidingClass(ConnectorConfig.java:519) │ │ at org.apache.kafka.connect.runtime.ConnectorConfig$EnrichablePlugin.configDefsForClass(ConnectorConfig.java:492) │ │ at org.apache.kafka.connect.runtime.ConnectorConfig$2.configDefsForClass(ConnectorConfig.java:348) │ │ at org.apache.kafka.connect.runtime.ConnectorConfig$EnrichablePlugin.populateConfigDef(ConnectorConfig.java:473) │ │ at org.apache.kafka.connect.runtime.ConnectorConfig$EnrichablePlugin.enrich(ConnectorConfig.java:457) │ │ at org.apache.kafka.connect.runtime.ConnectorConfig.enrich(ConnectorConfig.java:377) │ │ at org.apache.kafka.connect.runtime.AbstractHerder.validateConnectorConfig(AbstractHerder.java:508) │ │ at org.apache.kafka.connect.runtime.AbstractHerder.lambda$validateConnectorConfig$3(AbstractHerder.java:412) │ │ at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) │ │ at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) │ │ at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) │ │ at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
Question for you all. Does the class still work? Looking at the code we have a default constructor on the static class. We do not have a default constructor on the implementation. I think we could just change the declaration of the implementation to abstract to fix it.
We dont use these: AdjustPrecisionAndScale transforms. We only use using AddPrefix from confluent, changeTopicCase from kafka-connect-transform-common transformers and they still seem to work even with the above errors. So it might be just a few classes that are affected.
@jcustenborder I've updated my PRs following your suggestions:
https://github.com/jcustenborder/connect-utils/pull/214 https://github.com/jcustenborder/kafka-connect-transform-common/pull/113
I also have this issue with Kafka Connect 7.6. Is there a lower version of kafka-connect-transform-common thats works with it ok ?
RUN confluent-hub install --no-prompt jcustenborder/kafka-connect-transform-common:latest
@jcustenborder @marcuslinke these warnings seem to be related and also starting to appear when we upgraded to Kafka Connect 7.7.0. This also shows that the same issues appear in the kafka-connect-json-schema plugin as well
[2024-08-15 06:26:53,799] WARN One or more plugins are missing ServiceLoader manifests may not be usable with plugin.discovery=service_load: [
file:/usr/share/confluent-hub-components/jcustenborder-kafka-connect-json-schema/ com.github.jcustenborder.kafka.connect.json.FromJson$Key transformation undefined
file:/usr/share/confluent-hub-components/jcustenborder-kafka-connect-json-schema/ com.github.jcustenborder.kafka.connect.json.FromJson$Value transformation undefined
file:/usr/share/confluent-hub-components/jcustenborder-kafka-connect-json-schema/ com.github.jcustenborder.kafka.connect.json.JsonSchemaConverter converter undefined
file:/usr/share/confluent-hub-components/jcustenborder-kafka-connect-transform-common/ com.github.jcustenborder.kafka.connect.transform.common.AdjustPrecisionAndScale$Key transformation undefined
file:/usr/share/confluent-hub-components/jcustenborder-kafka-connect-transform-common/ com.github.jcustenborder.kafka.connect.transform.common.AdjustPrecisionAndScale$Value transformation undefined
file:/usr/share/confluent-hub-components/jcustenborder-kafka-connect-transform-common/ com.github.jcustenborder.kafka.connect.transform.common.BytesToString$Key transformation undefined
file:/usr/share/confluent-hub-components/jcustenborder-kafka-connect-transform-common/ com.github.jcustenborder.kafka.connect.transform.common.BytesToString$Value transformation undefined
file:/usr/share/confluent-hub-components/jcustenborder-kafka-connect-transform-common/ com.github.jcustenborder.kafka.connect.transform.common.ChangeCase$Key transformation undefined
file:/usr/share/confluent-hub-components/jcustenborder-kafka-connect-transform-common/ com.github.jcustenborder.kafka.connect.transform.common.ChangeCase$Value transformation undefined
file:/usr/share/confluent-hub-components/jcustenborder-kafka-connect-transform-common/ com.github.jcustenborder.kafka.connect.transform.common.ChangeTopicCase transformation undefined
file:/usr/share/confluent-hub-components/jcustenborder-kafka-connect-transform-common/ com.github.jcustenborder.kafka.connect.transform.common.Debug transformation undefined
file:/usr/share/confluent-hub-components/jcustenborder-kafka-connect-transform-common/ com.github.jcustenborder.kafka.connect.transform.common.ExtractNestedField$Key transformation undefined
file:/usr/share/confluent-hub-components/jcustenborder-kafka-connect-transform-common/ com.github.jcustenborder.kafka.connect.transform.common.ExtractNestedField$Value transformation undefined
file:/usr/share/confluent-hub-components/jcustenborder-kafka-connect-transform-common/ com.github.jcustenborder.kafka.connect.transform.common.ExtractTimestamp$Key transformation undefined
file:/usr/share/confluent-hub-components/jcustenborder-kafka-connect-transform-common/ com.github.jcustenborder.kafka.connect.transform.common.ExtractTimestamp$Value transformation undefined
file:/usr/share/confluent-hub-components/jcustenborder-kafka-connect-transform-common/ com.github.jcustenborder.kafka.connect.transform.common.ExtractXPath$Key transformation undefined
file:/usr/share/confluent-hub-components/jcustenborder-kafka-connect-transform-common/ com.github.jcustenborder.kafka.connect.transform.common.ExtractXPath$Value transformation undefined
file:/usr/share/confluent-hub-components/jcustenborder-kafka-connect-transform-common/ com.github.jcustenborder.kafka.connect.transform.common.HeaderToField$Key transformation undefined
file:/usr/share/confluent-hub-components/jcustenborder-kafka-connect-transform-common/ com.github.jcustenborder.kafka.connect.transform.common.HeaderToField$Value transformation undefined
file:/usr/share/confluent-hub-components/jcustenborder-kafka-connect-transform-common/ com.github.jcustenborder.kafka.connect.transform.common.LowerCaseTopic transformation undefined
file:/usr/share/confluent-hub-components/jcustenborder-kafka-connect-transform-common/ com.github.jcustenborder.kafka.connect.transform.common.NormalizeSchema$Key transformation undefined
file:/usr/share/confluent-hub-components/jcustenborder-kafka-connect-transform-common/ com.github.jcustenborder.kafka.connect.transform.common.NormalizeSchema$Value transformation undefined
file:/usr/share/confluent-hub-components/jcustenborder-kafka-connect-transform-common/ com.github.jcustenborder.kafka.connect.transform.common.PatternFilter$Key transformation undefined
file:/usr/share/confluent-hub-components/jcustenborder-kafka-connect-transform-common/ com.github.jcustenborder.kafka.connect.transform.common.PatternFilter$Value transformation undefined
file:/usr/share/confluent-hub-components/jcustenborder-kafka-connect-transform-common/ com.github.jcustenborder.kafka.connect.transform.common.PatternMapString$Key transformation undefined
file:/usr/share/confluent-hub-components/jcustenborder-kafka-connect-transform-common/ com.github.jcustenborder.kafka.connect.transform.common.PatternMapString$Value transformation undefined
file:/usr/share/confluent-hub-components/jcustenborder-kafka-connect-transform-common/ com.github.jcustenborder.kafka.connect.transform.common.PatternRename$Key transformation undefined
file:/usr/share/confluent-hub-components/jcustenborder-kafka-connect-transform-common/ com.github.jcustenborder.kafka.connect.transform.common.PatternRename$Value transformation undefined
file:/usr/share/confluent-hub-components/jcustenborder-kafka-connect-transform-common/ com.github.jcustenborder.kafka.connect.transform.common.SchemaNameToTopic$Key transformation undefined
file:/usr/share/confluent-hub-components/jcustenborder-kafka-connect-transform-common/ com.github.jcustenborder.kafka.connect.transform.common.SchemaNameToTopic$Value transformation undefined
file:/usr/share/confluent-hub-components/jcustenborder-kafka-connect-transform-common/ com.github.jcustenborder.kafka.connect.transform.common.SetMaximumPrecision$Key transformation undefined
file:/usr/share/confluent-hub-components/jcustenborder-kafka-connect-transform-common/ com.github.jcustenborder.kafka.connect.transform.common.SetMaximumPrecision$Value transformation undefined
file:/usr/share/confluent-hub-components/jcustenborder-kafka-connect-transform-common/ com.github.jcustenborder.kafka.connect.transform.common.SetNull$Key transformation undefined
file:/usr/share/confluent-hub-components/jcustenborder-kafka-connect-transform-common/ com.github.jcustenborder.kafka.connect.transform.common.SetNull$Value transformation undefined
file:/usr/share/confluent-hub-components/jcustenborder-kafka-connect-transform-common/ com.github.jcustenborder.kafka.connect.transform.common.TimestampNow transformation undefined
file:/usr/share/confluent-hub-components/jcustenborder-kafka-connect-transform-common/ com.github.jcustenborder.kafka.connect.transform.common.TimestampNowField$Key transformation undefined
file:/usr/share/confluent-hub-components/jcustenborder-kafka-connect-transform-common/ com.github.jcustenborder.kafka.connect.transform.common.TimestampNowField$Value transformation undefined
file:/usr/share/confluent-hub-components/jcustenborder-kafka-connect-transform-common/ com.github.jcustenborder.kafka.connect.transform.common.ToJSON$Key transformation undefined
file:/usr/share/confluent-hub-components/jcustenborder-kafka-connect-transform-common/ com.github.jcustenborder.kafka.connect.transform.common.ToJSON$Value transformation undefined
file:/usr/share/confluent-hub-components/jcustenborder-kafka-connect-transform-common/ com.github.jcustenborder.kafka.connect.transform.common.ToLong$Key transformation undefined
file:/usr/share/confluent-hub-components/jcustenborder-kafka-connect-transform-common/ com.github.jcustenborder.kafka.connect.transform.common.ToLong$Value transformation undefined
file:/usr/share/confluent-hub-components/jcustenborder-kafka-connect-transform-common/ com.github.jcustenborder.kafka.connect.transform.common.TopicNameToField$Key transformation undefined
file:/usr/share/confluent-hub-components/jcustenborder-kafka-connect-transform-common/ com.github.jcustenborder.kafka.connect.transform.common.TopicNameToField$Value transformation undefined