From ecebccfd8b5db82ba66fb43bb3038afd9da3bae9 Mon Sep 17 00:00:00 2001 From: Greg Harris Date: Fri, 24 Feb 2023 13:46:50 -0800 Subject: [PATCH 1/8] KAFKA-14759: Move Mock, Schema, and Verifiable connectors to new test-plugins package Signed-off-by: Greg Harris --- build.gradle | 38 +++++++++++++++- .../resources/ConnectorPluginsResource.java | 23 +--------- .../ConnectorPluginsResourceTest.java | 6 --- .../kafka/connect/tools/MockConnector.java | 0 .../connect/tools/MockSinkConnector.java | 0 .../kafka/connect/tools/MockSinkTask.java | 0 .../connect/tools/MockSourceConnector.java | 0 .../kafka/connect/tools/MockSourceTask.java | 0 .../connect/tools/SchemaSourceConnector.java | 0 .../kafka/connect/tools/SchemaSourceTask.java | 0 .../tools/VerifiableSinkConnector.java | 0 .../connect/tools/VerifiableSinkTask.java | 0 .../tools/VerifiableSourceConnector.java | 0 .../connect/tools/VerifiableSourceTask.java | 0 settings.gradle | 1 + tests/kafkatest/services/connect.py | 45 ++++++++++--------- 16 files changed, 64 insertions(+), 49 deletions(-) rename connect/{runtime => test-plugins}/src/main/java/org/apache/kafka/connect/tools/MockConnector.java (100%) rename connect/{runtime => test-plugins}/src/main/java/org/apache/kafka/connect/tools/MockSinkConnector.java (100%) rename connect/{runtime => test-plugins}/src/main/java/org/apache/kafka/connect/tools/MockSinkTask.java (100%) rename connect/{runtime => test-plugins}/src/main/java/org/apache/kafka/connect/tools/MockSourceConnector.java (100%) rename connect/{runtime => test-plugins}/src/main/java/org/apache/kafka/connect/tools/MockSourceTask.java (100%) rename connect/{runtime => test-plugins}/src/main/java/org/apache/kafka/connect/tools/SchemaSourceConnector.java (100%) rename connect/{runtime => test-plugins}/src/main/java/org/apache/kafka/connect/tools/SchemaSourceTask.java (100%) rename connect/{runtime => test-plugins}/src/main/java/org/apache/kafka/connect/tools/VerifiableSinkConnector.java (100%) rename connect/{runtime => test-plugins}/src/main/java/org/apache/kafka/connect/tools/VerifiableSinkTask.java (100%) rename connect/{runtime => test-plugins}/src/main/java/org/apache/kafka/connect/tools/VerifiableSourceConnector.java (100%) rename connect/{runtime => test-plugins}/src/main/java/org/apache/kafka/connect/tools/VerifiableSourceTask.java (100%) diff --git a/build.gradle b/build.gradle index 67fde2455df90..011f2187fc400 100644 --- a/build.gradle +++ b/build.gradle @@ -836,6 +836,7 @@ def connectPkgs = [ 'connect:file', 'connect:json', 'connect:runtime', + 'connect:test-plugins', 'connect:transforms', 'connect:mirror', 'connect:mirror-client' @@ -2651,8 +2652,6 @@ project(':connect:runtime') { api project(':connect:json') api project(':connect:transforms') - implementation project(':tools') - implementation libs.slf4jApi implementation libs.log4j implementation libs.jose4j // for SASL/OAUTHBEARER JWT validation @@ -2678,6 +2677,8 @@ project(':connect:runtime') { testImplementation project(':core') testImplementation project(':metadata') testImplementation project(':core').sourceSets.test.output + testImplementation project(':tools') + testImplementation project(':connect:test-plugins') testImplementation libs.easymock testImplementation libs.junitJupiterApi @@ -2967,6 +2968,39 @@ project(':connect:mirror-client') { } } +project(':connect:test-plugins') { + archivesBaseName = "connect-test-plugins" + + dependencies { + api project(':connect:api') + + implementation project(':tools') + implementation libs.slf4jApi + implementation libs.jacksonDatabind + + testImplementation libs.junitJupiter + + testRuntimeOnly libs.slf4jlog4j + } + + tasks.create(name: "copyDependantLibs", type: Copy) { + from (configurations.testRuntimeClasspath) { + include('slf4j-log4j12*') + include('reload4j*jar') + } + from (configurations.runtimeClasspath) { + exclude('kafka-clients*') + exclude('connect-*') + } + into "$buildDir/dependant-libs" + duplicatesStrategy 'exclude' + } + + jar { + dependsOn copyDependantLibs + } +} + task aggregatedJavadoc(type: Javadoc, dependsOn: compileJava) { def projectsWithJavadoc = subprojects.findAll { it.javadoc.enabled } source = projectsWithJavadoc.collect { it.sourceSets.main.allJava } diff --git a/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/rest/resources/ConnectorPluginsResource.java b/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/rest/resources/ConnectorPluginsResource.java index 05b8375183c91..67ded10a2910d 100644 --- a/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/rest/resources/ConnectorPluginsResource.java +++ b/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/rest/resources/ConnectorPluginsResource.java @@ -27,13 +27,6 @@ import org.apache.kafka.connect.runtime.rest.entities.ConfigKeyInfo; import org.apache.kafka.connect.runtime.rest.entities.PluginInfo; import org.apache.kafka.connect.runtime.rest.errors.ConnectRestException; -import org.apache.kafka.connect.sink.SinkConnector; -import org.apache.kafka.connect.source.SourceConnector; -import org.apache.kafka.connect.tools.MockSinkConnector; -import org.apache.kafka.connect.tools.MockSourceConnector; -import org.apache.kafka.connect.tools.SchemaSourceConnector; -import org.apache.kafka.connect.tools.VerifiableSinkConnector; -import org.apache.kafka.connect.tools.VerifiableSourceConnector; import org.apache.kafka.connect.transforms.Transformation; import org.apache.kafka.connect.util.FutureCallback; @@ -49,7 +42,6 @@ import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.List; @@ -68,17 +60,6 @@ public class ConnectorPluginsResource implements ConnectResource { private final List connectorPlugins; private long requestTimeoutMs; - static final List> SINK_CONNECTOR_EXCLUDES = Arrays.asList( - VerifiableSinkConnector.class, - MockSinkConnector.class - ); - - static final List> SOURCE_CONNECTOR_EXCLUDES = Arrays.asList( - VerifiableSourceConnector.class, - MockSourceConnector.class, - SchemaSourceConnector.class - ); - @SuppressWarnings({"unchecked", "rawtypes"}) static final List>> TRANSFORM_EXCLUDES = Collections.singletonList( (Class) PredicatedTransformation.class @@ -90,8 +71,8 @@ public ConnectorPluginsResource(Herder herder) { this.requestTimeoutMs = DEFAULT_REST_REQUEST_TIMEOUT_MS; // TODO: improve once plugins are allowed to be added/removed during runtime. - addConnectorPlugins(herder.plugins().sinkConnectors(), SINK_CONNECTOR_EXCLUDES); - addConnectorPlugins(herder.plugins().sourceConnectors(), SOURCE_CONNECTOR_EXCLUDES); + addConnectorPlugins(herder.plugins().sinkConnectors(), Collections.emptySet()); + addConnectorPlugins(herder.plugins().sourceConnectors(), Collections.emptySet()); addConnectorPlugins(herder.plugins().transformations(), TRANSFORM_EXCLUDES); addConnectorPlugins(herder.plugins().predicates(), Collections.emptySet()); addConnectorPlugins(herder.plugins().converters(), Collections.emptySet()); diff --git a/connect/runtime/src/test/java/org/apache/kafka/connect/runtime/rest/resources/ConnectorPluginsResourceTest.java b/connect/runtime/src/test/java/org/apache/kafka/connect/runtime/rest/resources/ConnectorPluginsResourceTest.java index 59cf83ca9ae05..160da674414a9 100644 --- a/connect/runtime/src/test/java/org/apache/kafka/connect/runtime/rest/resources/ConnectorPluginsResourceTest.java +++ b/connect/runtime/src/test/java/org/apache/kafka/connect/runtime/rest/resources/ConnectorPluginsResourceTest.java @@ -338,12 +338,8 @@ public void testValidateConfigWithNonExistentAlias() { @Test public void testListConnectorPlugins() { - Set> excludes = Stream.of(ConnectorPluginsResource.SINK_CONNECTOR_EXCLUDES, ConnectorPluginsResource.SOURCE_CONNECTOR_EXCLUDES) - .flatMap(Collection::stream) - .collect(Collectors.toSet()); Set expectedConnectorPlugins = Stream.of(SINK_CONNECTOR_PLUGINS, SOURCE_CONNECTOR_PLUGINS) .flatMap(Collection::stream) - .filter(p -> !excludes.contains(p.pluginClass())) .map(ConnectorPluginsResourceTest::newInfo) .collect(Collectors.toSet()); Set actualConnectorPlugins = new HashSet<>(connectorPluginsResource.listConnectorPlugins(true)); @@ -386,8 +382,6 @@ public void testConnectorPluginsIncludesClassTypeAndVersionInformation() throws @Test public void testListAllPlugins() { Set> excludes = Stream.of( - ConnectorPluginsResource.SINK_CONNECTOR_EXCLUDES, - ConnectorPluginsResource.SOURCE_CONNECTOR_EXCLUDES, ConnectorPluginsResource.TRANSFORM_EXCLUDES ).flatMap(Collection::stream) .collect(Collectors.toSet()); diff --git a/connect/runtime/src/main/java/org/apache/kafka/connect/tools/MockConnector.java b/connect/test-plugins/src/main/java/org/apache/kafka/connect/tools/MockConnector.java similarity index 100% rename from connect/runtime/src/main/java/org/apache/kafka/connect/tools/MockConnector.java rename to connect/test-plugins/src/main/java/org/apache/kafka/connect/tools/MockConnector.java diff --git a/connect/runtime/src/main/java/org/apache/kafka/connect/tools/MockSinkConnector.java b/connect/test-plugins/src/main/java/org/apache/kafka/connect/tools/MockSinkConnector.java similarity index 100% rename from connect/runtime/src/main/java/org/apache/kafka/connect/tools/MockSinkConnector.java rename to connect/test-plugins/src/main/java/org/apache/kafka/connect/tools/MockSinkConnector.java diff --git a/connect/runtime/src/main/java/org/apache/kafka/connect/tools/MockSinkTask.java b/connect/test-plugins/src/main/java/org/apache/kafka/connect/tools/MockSinkTask.java similarity index 100% rename from connect/runtime/src/main/java/org/apache/kafka/connect/tools/MockSinkTask.java rename to connect/test-plugins/src/main/java/org/apache/kafka/connect/tools/MockSinkTask.java diff --git a/connect/runtime/src/main/java/org/apache/kafka/connect/tools/MockSourceConnector.java b/connect/test-plugins/src/main/java/org/apache/kafka/connect/tools/MockSourceConnector.java similarity index 100% rename from connect/runtime/src/main/java/org/apache/kafka/connect/tools/MockSourceConnector.java rename to connect/test-plugins/src/main/java/org/apache/kafka/connect/tools/MockSourceConnector.java diff --git a/connect/runtime/src/main/java/org/apache/kafka/connect/tools/MockSourceTask.java b/connect/test-plugins/src/main/java/org/apache/kafka/connect/tools/MockSourceTask.java similarity index 100% rename from connect/runtime/src/main/java/org/apache/kafka/connect/tools/MockSourceTask.java rename to connect/test-plugins/src/main/java/org/apache/kafka/connect/tools/MockSourceTask.java diff --git a/connect/runtime/src/main/java/org/apache/kafka/connect/tools/SchemaSourceConnector.java b/connect/test-plugins/src/main/java/org/apache/kafka/connect/tools/SchemaSourceConnector.java similarity index 100% rename from connect/runtime/src/main/java/org/apache/kafka/connect/tools/SchemaSourceConnector.java rename to connect/test-plugins/src/main/java/org/apache/kafka/connect/tools/SchemaSourceConnector.java diff --git a/connect/runtime/src/main/java/org/apache/kafka/connect/tools/SchemaSourceTask.java b/connect/test-plugins/src/main/java/org/apache/kafka/connect/tools/SchemaSourceTask.java similarity index 100% rename from connect/runtime/src/main/java/org/apache/kafka/connect/tools/SchemaSourceTask.java rename to connect/test-plugins/src/main/java/org/apache/kafka/connect/tools/SchemaSourceTask.java diff --git a/connect/runtime/src/main/java/org/apache/kafka/connect/tools/VerifiableSinkConnector.java b/connect/test-plugins/src/main/java/org/apache/kafka/connect/tools/VerifiableSinkConnector.java similarity index 100% rename from connect/runtime/src/main/java/org/apache/kafka/connect/tools/VerifiableSinkConnector.java rename to connect/test-plugins/src/main/java/org/apache/kafka/connect/tools/VerifiableSinkConnector.java diff --git a/connect/runtime/src/main/java/org/apache/kafka/connect/tools/VerifiableSinkTask.java b/connect/test-plugins/src/main/java/org/apache/kafka/connect/tools/VerifiableSinkTask.java similarity index 100% rename from connect/runtime/src/main/java/org/apache/kafka/connect/tools/VerifiableSinkTask.java rename to connect/test-plugins/src/main/java/org/apache/kafka/connect/tools/VerifiableSinkTask.java diff --git a/connect/runtime/src/main/java/org/apache/kafka/connect/tools/VerifiableSourceConnector.java b/connect/test-plugins/src/main/java/org/apache/kafka/connect/tools/VerifiableSourceConnector.java similarity index 100% rename from connect/runtime/src/main/java/org/apache/kafka/connect/tools/VerifiableSourceConnector.java rename to connect/test-plugins/src/main/java/org/apache/kafka/connect/tools/VerifiableSourceConnector.java diff --git a/connect/runtime/src/main/java/org/apache/kafka/connect/tools/VerifiableSourceTask.java b/connect/test-plugins/src/main/java/org/apache/kafka/connect/tools/VerifiableSourceTask.java similarity index 100% rename from connect/runtime/src/main/java/org/apache/kafka/connect/tools/VerifiableSourceTask.java rename to connect/test-plugins/src/main/java/org/apache/kafka/connect/tools/VerifiableSourceTask.java diff --git a/settings.gradle b/settings.gradle index f0dceb845baaf..c2e3e91859c39 100644 --- a/settings.gradle +++ b/settings.gradle @@ -21,6 +21,7 @@ include 'clients', 'connect:mirror', 'connect:mirror-client', 'connect:runtime', + 'connect:test-plugins', 'connect:transforms', 'core', 'examples', diff --git a/tests/kafkatest/services/connect.py b/tests/kafkatest/services/connect.py index 6cd4fa0675dd3..5f79d045fd7c3 100644 --- a/tests/kafkatest/services/connect.py +++ b/tests/kafkatest/services/connect.py @@ -285,26 +285,31 @@ def append_to_environment_variable(self, envvar, value): env_opts = "\"%s %s\"" % (env_opts.strip('\"'), value) self.environment[envvar] = env_opts - def append_filestream_connectors_to_classpath(self): + def maybe_append_filestream_connectors_to_classpath(self): if self.include_filestream_connectors: - cwd = os.getcwd() - self.logger.info("Including filestream connectors when starting Connect. " - "Looking for jar locally in: %s" % cwd) - relative_path = "/connect/file/build/libs/" - local_dir = cwd + relative_path - lib_dir = self.path.home() + relative_path - for pwd, dirs, files in os.walk(local_dir): - for file in files: - if file.startswith("connect-file") and file.endswith(".jar"): - # Use the expected directory on the node instead of the path in the driver node - file_path = lib_dir + file - self.logger.debug("Appending %s to Connect worker's CLASSPATH" % file_path) - return "export CLASSPATH=${CLASSPATH}:%s; " % file_path - self.logger.info("Jar with filestream connectors was not found under %s" % lib_dir) + return self.append_module_to_classpath("file") else: self.logger.info("Starting Connect without filestream connectors in the CLASSPATH") + return "" - return None + def append_test_plugins_to_classpath(self): + return self.append_module_to_classpath("test-plugins") + + def append_module_to_classpath(self, module): + cwd = os.getcwd() + relative_path = "/connect/" + module + "/build/libs/" + local_dir = cwd + relative_path + lib_dir = self.path.home() + relative_path + for pwd, dirs, files in os.walk(local_dir): + for file in files: + if file.endswith(".jar"): + # Use the expected directory on the node instead of the path in the driver node + file_path = lib_dir + file + self.logger.debug("Appending %s to Connect worker's CLASSPATH" % file_path) + return "export CLASSPATH=${CLASSPATH}:%s; " % file_path + + self.logger.info("Jar not found within %s" % local_dir) + return "" class ConnectStandaloneService(ConnectServiceBase): @@ -327,8 +332,8 @@ def start_cmd(self, node, connector_configs): cmd += fix_opts_for_new_jvm(node) cmd += "export KAFKA_OPTS=\"%s %s\"; " % (heap_kafka_opts, other_kafka_opts) - classpath = self.append_filestream_connectors_to_classpath() - cmd += classpath if classpath else "" + cmd += self.append_test_plugins_to_classpath() + cmd += self.maybe_append_filestream_connectors_to_classpath() for envvar in self.environment: cmd += "export %s=%s; " % (envvar, str(self.environment[envvar])) @@ -388,8 +393,8 @@ def start_cmd(self, node, connector_configs): for envvar in self.environment: cmd += "export %s=%s; " % (envvar, str(self.environment[envvar])) - classpath = self.append_filestream_connectors_to_classpath() - cmd += classpath if classpath else "" + cmd += self.maybe_append_filestream_connectors_to_classpath() + cmd += self.append_test_plugins_to_classpath() cmd += "%s %s " % (self.path.script("connect-distributed.sh", node), self.CONFIG_FILE) cmd += " & echo $! >&3 ) 1>> %s 2>> %s 3> %s" % (self.STDOUT_FILE, self.STDERR_FILE, self.PID_FILE) return cmd From 4373f514cd5a8429e63679c90b5581bb86665cf4 Mon Sep 17 00:00:00 2001 From: Greg Harris Date: Thu, 20 Jul 2023 11:25:24 -0700 Subject: [PATCH 2/8] fixup: remove excludes parameter from addConnectorPlugins Signed-off-by: Greg Harris --- .../rest/resources/ConnectorPluginsResource.java | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/rest/resources/ConnectorPluginsResource.java b/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/rest/resources/ConnectorPluginsResource.java index fdbed98a93ede..947c467ae1a50 100644 --- a/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/rest/resources/ConnectorPluginsResource.java +++ b/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/rest/resources/ConnectorPluginsResource.java @@ -64,17 +64,16 @@ public ConnectorPluginsResource(Herder herder) { this.requestTimeoutMs = DEFAULT_REST_REQUEST_TIMEOUT_MS; // TODO: improve once plugins are allowed to be added/removed during runtime. - addConnectorPlugins(herder.plugins().sinkConnectors(), Collections.emptySet()); - addConnectorPlugins(herder.plugins().sourceConnectors(), Collections.emptySet()); - addConnectorPlugins(herder.plugins().transformations(), Collections.emptySet()); - addConnectorPlugins(herder.plugins().predicates(), Collections.emptySet()); - addConnectorPlugins(herder.plugins().converters(), Collections.emptySet()); - addConnectorPlugins(herder.plugins().headerConverters(), Collections.emptySet()); + addConnectorPlugins(herder.plugins().sinkConnectors()); + addConnectorPlugins(herder.plugins().sourceConnectors()); + addConnectorPlugins(herder.plugins().transformations()); + addConnectorPlugins(herder.plugins().predicates()); + addConnectorPlugins(herder.plugins().converters()); + addConnectorPlugins(herder.plugins().headerConverters()); } - private void addConnectorPlugins(Collection> plugins, Collection> excludes) { + private void addConnectorPlugins(Collection> plugins) { plugins.stream() - .filter(p -> !excludes.contains(p.pluginClass())) .map(PluginInfo::new) .forEach(connectorPlugins::add); } From ccf3750e3495ecdfe95aede1f107985fdc5f40a3 Mon Sep 17 00:00:00 2001 From: Greg Harris Date: Thu, 20 Jul 2023 11:29:47 -0700 Subject: [PATCH 3/8] fixup: remove test dependencies while we have no tests Signed-off-by: Greg Harris --- build.gradle | 3 --- 1 file changed, 3 deletions(-) diff --git a/build.gradle b/build.gradle index 39445e99836b5..8dec734b5e09b 100644 --- a/build.gradle +++ b/build.gradle @@ -3059,9 +3059,6 @@ project(':connect:test-plugins') { implementation libs.slf4jApi implementation libs.jacksonDatabind - testImplementation libs.junitJupiter - - testRuntimeOnly libs.slf4jlog4j } tasks.create(name: "copyDependantLibs", type: Copy) { From 23030f47e065a1b0ad59eaa3bce2b08dacd8a999 Mon Sep 17 00:00:00 2001 From: Greg Harris Date: Thu, 20 Jul 2023 11:30:05 -0700 Subject: [PATCH 4/8] fixup: upgrade log message to info Signed-off-by: Greg Harris --- tests/kafkatest/services/connect.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/kafkatest/services/connect.py b/tests/kafkatest/services/connect.py index 5f79d045fd7c3..a62ded14271ad 100644 --- a/tests/kafkatest/services/connect.py +++ b/tests/kafkatest/services/connect.py @@ -305,7 +305,7 @@ def append_module_to_classpath(self, module): if file.endswith(".jar"): # Use the expected directory on the node instead of the path in the driver node file_path = lib_dir + file - self.logger.debug("Appending %s to Connect worker's CLASSPATH" % file_path) + self.logger.info("Appending %s to Connect worker's CLASSPATH" % file_path) return "export CLASSPATH=${CLASSPATH}:%s; " % file_path self.logger.info("Jar not found within %s" % local_dir) From f5f85e00c48a9bc00a0adea5b0c51f942f1e5f9d Mon Sep 17 00:00:00 2001 From: Greg Harris Date: Fri, 21 Jul 2023 14:12:00 -0700 Subject: [PATCH 5/8] fixup: remove copyDependantLibs Signed-off-by: Greg Harris --- build.gradle | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/build.gradle b/build.gradle index 8dec734b5e09b..840ab2c4740df 100644 --- a/build.gradle +++ b/build.gradle @@ -3060,23 +3060,6 @@ project(':connect:test-plugins') { implementation libs.jacksonDatabind } - - tasks.create(name: "copyDependantLibs", type: Copy) { - from (configurations.testRuntimeClasspath) { - include('slf4j-log4j12*') - include('reload4j*jar') - } - from (configurations.runtimeClasspath) { - exclude('kafka-clients*') - exclude('connect-*') - } - into "$buildDir/dependant-libs" - duplicatesStrategy 'exclude' - } - - jar { - dependsOn copyDependantLibs - } } task aggregatedJavadoc(type: Javadoc, dependsOn: compileJava) { From 8cd8e6a71d35db4f915c3cb532599aa7a593d610 Mon Sep 17 00:00:00 2001 From: Greg Harris Date: Thu, 10 Aug 2023 17:05:02 -0700 Subject: [PATCH 6/8] fixup: move test connector manifests Signed-off-by: Greg Harris --- .../META-INF/services/org.apache.kafka.connect.sink.SinkConnector | 0 .../services/org.apache.kafka.connect.source.SourceConnector | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename connect/{runtime => test-plugins}/src/main/resources/META-INF/services/org.apache.kafka.connect.sink.SinkConnector (100%) rename connect/{runtime => test-plugins}/src/main/resources/META-INF/services/org.apache.kafka.connect.source.SourceConnector (100%) diff --git a/connect/runtime/src/main/resources/META-INF/services/org.apache.kafka.connect.sink.SinkConnector b/connect/test-plugins/src/main/resources/META-INF/services/org.apache.kafka.connect.sink.SinkConnector similarity index 100% rename from connect/runtime/src/main/resources/META-INF/services/org.apache.kafka.connect.sink.SinkConnector rename to connect/test-plugins/src/main/resources/META-INF/services/org.apache.kafka.connect.sink.SinkConnector diff --git a/connect/runtime/src/main/resources/META-INF/services/org.apache.kafka.connect.source.SourceConnector b/connect/test-plugins/src/main/resources/META-INF/services/org.apache.kafka.connect.source.SourceConnector similarity index 100% rename from connect/runtime/src/main/resources/META-INF/services/org.apache.kafka.connect.source.SourceConnector rename to connect/test-plugins/src/main/resources/META-INF/services/org.apache.kafka.connect.source.SourceConnector From e9bdc2f0d523f3d7c3db30bb57b62cb1a792b9d7 Mon Sep 17 00:00:00 2001 From: Greg Harris Date: Fri, 11 Aug 2023 09:36:25 -0700 Subject: [PATCH 7/8] fixup: server-common dependency Signed-off-by: Greg Harris --- build.gradle | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index d5e5793df325d..4e7275dc63170 100644 --- a/build.gradle +++ b/build.gradle @@ -3079,10 +3079,9 @@ project(':connect:test-plugins') { dependencies { api project(':connect:api') - implementation project(':tools') + implementation project(':server-common') implementation libs.slf4jApi implementation libs.jacksonDatabind - } } From 8c5d676edde558f19821cc6cbd726a9f0f00d718 Mon Sep 17 00:00:00 2001 From: Greg Harris Date: Tue, 15 Aug 2023 15:00:34 -0700 Subject: [PATCH 8/8] fixup: incorrect dependency graph for MonitorableSourceConnector Signed-off-by: Greg Harris --- build.gradle | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index 642de3359444c..1787987133dde 100644 --- a/build.gradle +++ b/build.gradle @@ -2769,7 +2769,6 @@ project(':connect:runtime') { implementation libs.reflections implementation libs.mavenArtifact implementation libs.swaggerAnnotations - implementation project(':server-common') // We use this library to generate OpenAPI docs for the REST API, but we don't want or need it at compile // or run time. So, we add it to a separate configuration, which we use later on during docs generation @@ -2779,7 +2778,7 @@ project(':connect:runtime') { testImplementation project(':core') testImplementation project(':metadata') testImplementation project(':core').sourceSets.test.output - testImplementation project(':tools') + testImplementation project(':server-common') testImplementation project(':connect:test-plugins') testImplementation libs.easymock