kafka-connect-transform-common icon indicating copy to clipboard operation
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

Open aonamrata opened this issue 1 year ago • 11 comments

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)

aonamrata avatar Apr 17 '24 08:04 aonamrata

Had a similar issue seting JAVA_OPTS ="-Xmx 2g -Xms 2g" on kafka connect container resolved it

rizvnn avatar Jun 18 '24 09:06 rizvnn

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.

aonamrata avatar Jun 25 '24 07:06 aonamrata

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.

reidmeyer avatar Jul 12 '24 10:07 reidmeyer

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.

jcustenborder avatar Jul 30 '24 16:07 jcustenborder

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.

marcuslinke avatar Jul 30 '24 16:07 marcuslinke

@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)

marcuslinke avatar Jul 30 '24 16:07 marcuslinke

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.

aonamrata avatar Jul 31 '24 05:07 aonamrata

@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

marcuslinke avatar Jul 31 '24 10:07 marcuslinke

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

walshe avatar Aug 07 '24 08:08 walshe

@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

mot256 avatar Aug 15 '24 06:08 mot256