From e968c263a58f97beba893ef558e95e4db44f1a0f Mon Sep 17 00:00:00 2001 From: David Jacot Date: Mon, 7 Nov 2022 15:34:32 +0100 Subject: [PATCH 1/4] KAFKA-14363; Add new `coordinator` module (KIP-848) --- build.gradle | 38 +++++++++++++++++++ coordinator/.gitignore | 1 + .../coordinator/group/GroupCoordinator.java | 21 ++++++++++ .../src/test/resources/log4j.properties | 22 +++++++++++ settings.gradle | 1 + 5 files changed, 83 insertions(+) create mode 100644 coordinator/.gitignore create mode 100644 coordinator/src/main/java/org/apache/kafka/coordinator/group/GroupCoordinator.java create mode 100644 coordinator/src/test/resources/log4j.properties diff --git a/build.gradle b/build.gradle index 57d4b74665da4..77db60e735252 100644 --- a/build.gradle +++ b/build.gradle @@ -865,10 +865,12 @@ project(':core') { api libs.scalaLibrary implementation project(':server-common') + implementation project(':coordinator') implementation project(':metadata') implementation project(':raft') implementation project(':storage') + implementation libs.argparse4j implementation libs.jacksonDatabind implementation libs.jacksonModuleScala @@ -896,6 +898,7 @@ project(':core') { compileOnly libs.log4j testImplementation project(':clients').sourceSets.test.output + testImplementation project(':coordinator').sourceSets.test.output testImplementation project(':metadata').sourceSets.test.output testImplementation project(':raft').sourceSets.test.output testImplementation project(':server-common').sourceSets.test.output @@ -1222,6 +1225,41 @@ project(':metadata') { } } +project(':coordinator') { + archivesBaseName = "kafka-coordinator" + + dependencies { + implementation project(':server-common') + implementation project(':clients') + compileOnly libs.log4j + testImplementation libs.junitJupiter + testImplementation libs.jqwik + testImplementation libs.hamcrest + testImplementation libs.mockitoCore + testImplementation libs.mockitoInline + testImplementation libs.slf4jlog4j + testImplementation project(':clients').sourceSets.test.output + testImplementation project(':server-common').sourceSets.test.output + } + + sourceSets { + main { + java { + srcDirs = ["src/generated/java", "src/main/java"] + } + } + test { + java { + srcDirs = ["src/generated/java", "src/test/java"] + } + } + } + + javadoc { + enabled = false + } +} + project(':examples') { archivesBaseName = "kafka-examples" diff --git a/coordinator/.gitignore b/coordinator/.gitignore new file mode 100644 index 0000000000000..ae3c1726048cd --- /dev/null +++ b/coordinator/.gitignore @@ -0,0 +1 @@ +/bin/ diff --git a/coordinator/src/main/java/org/apache/kafka/coordinator/group/GroupCoordinator.java b/coordinator/src/main/java/org/apache/kafka/coordinator/group/GroupCoordinator.java new file mode 100644 index 0000000000000..3bf5f2ed5729a --- /dev/null +++ b/coordinator/src/main/java/org/apache/kafka/coordinator/group/GroupCoordinator.java @@ -0,0 +1,21 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.kafka.coordinator.group; + +public interface GroupCoordinator { +} diff --git a/coordinator/src/test/resources/log4j.properties b/coordinator/src/test/resources/log4j.properties new file mode 100644 index 0000000000000..db3879386f10f --- /dev/null +++ b/coordinator/src/test/resources/log4j.properties @@ -0,0 +1,22 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +log4j.rootLogger=DEBUG, stdout + +log4j.appender.stdout=org.apache.log4j.ConsoleAppender +log4j.appender.stdout.layout=org.apache.log4j.PatternLayout +log4j.appender.stdout.layout.ConversionPattern=[%d] %p %m (%c:%L)%n + +log4j.logger.org.apache.kafka=DEBUG +log4j.logger.org.apache.zookeeper=WARN diff --git a/settings.gradle b/settings.gradle index 5c0b8d1944b93..dae2119fc8292 100644 --- a/settings.gradle +++ b/settings.gradle @@ -22,6 +22,7 @@ include 'clients', 'connect:mirror-client', 'connect:runtime', 'connect:transforms', + 'coordinator', 'core', 'examples', 'generator', From 68457a439c31f59771ae3b3f38d49fe5b0946eca Mon Sep 17 00:00:00 2001 From: David Jacot Date: Mon, 7 Nov 2022 15:58:24 +0100 Subject: [PATCH 2/4] rename --- build.gradle | 8 ++++---- {coordinator => group-coordinator}/.gitignore | 0 .../apache/kafka/coordinator/group/GroupCoordinator.java | 0 .../src/test/resources/log4j.properties | 0 settings.gradle | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) rename {coordinator => group-coordinator}/.gitignore (100%) rename {coordinator => group-coordinator}/src/main/java/org/apache/kafka/coordinator/group/GroupCoordinator.java (100%) rename {coordinator => group-coordinator}/src/test/resources/log4j.properties (100%) diff --git a/build.gradle b/build.gradle index 77db60e735252..45cf248666ed3 100644 --- a/build.gradle +++ b/build.gradle @@ -865,7 +865,7 @@ project(':core') { api libs.scalaLibrary implementation project(':server-common') - implementation project(':coordinator') + implementation project(':group-coordinator') implementation project(':metadata') implementation project(':raft') implementation project(':storage') @@ -898,7 +898,7 @@ project(':core') { compileOnly libs.log4j testImplementation project(':clients').sourceSets.test.output - testImplementation project(':coordinator').sourceSets.test.output + testImplementation project(':group-coordinator').sourceSets.test.output testImplementation project(':metadata').sourceSets.test.output testImplementation project(':raft').sourceSets.test.output testImplementation project(':server-common').sourceSets.test.output @@ -1225,8 +1225,8 @@ project(':metadata') { } } -project(':coordinator') { - archivesBaseName = "kafka-coordinator" +project(':group-coordinator') { + archivesBaseName = "kafka-group-coordinator" dependencies { implementation project(':server-common') diff --git a/coordinator/.gitignore b/group-coordinator/.gitignore similarity index 100% rename from coordinator/.gitignore rename to group-coordinator/.gitignore diff --git a/coordinator/src/main/java/org/apache/kafka/coordinator/group/GroupCoordinator.java b/group-coordinator/src/main/java/org/apache/kafka/coordinator/group/GroupCoordinator.java similarity index 100% rename from coordinator/src/main/java/org/apache/kafka/coordinator/group/GroupCoordinator.java rename to group-coordinator/src/main/java/org/apache/kafka/coordinator/group/GroupCoordinator.java diff --git a/coordinator/src/test/resources/log4j.properties b/group-coordinator/src/test/resources/log4j.properties similarity index 100% rename from coordinator/src/test/resources/log4j.properties rename to group-coordinator/src/test/resources/log4j.properties diff --git a/settings.gradle b/settings.gradle index dae2119fc8292..513ca90f8945a 100644 --- a/settings.gradle +++ b/settings.gradle @@ -22,10 +22,10 @@ include 'clients', 'connect:mirror-client', 'connect:runtime', 'connect:transforms', - 'coordinator', 'core', 'examples', 'generator', + 'group-coordinator', 'jmh-benchmarks', 'log4j-appender', 'metadata', From 19207b43fe8c7b6f08b64d72a5bc28404736deff Mon Sep 17 00:00:00 2001 From: David Jacot Date: Tue, 8 Nov 2022 16:34:58 +0100 Subject: [PATCH 3/4] fix deps --- build.gradle | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/build.gradle b/build.gradle index 45cf248666ed3..a63e54f65c718 100644 --- a/build.gradle +++ b/build.gradle @@ -1231,15 +1231,16 @@ project(':group-coordinator') { dependencies { implementation project(':server-common') implementation project(':clients') - compileOnly libs.log4j - testImplementation libs.junitJupiter - testImplementation libs.jqwik - testImplementation libs.hamcrest - testImplementation libs.mockitoCore - testImplementation libs.mockitoInline - testImplementation libs.slf4jlog4j + implementation libs.slf4jApi + + testImplementation project(':clients') testImplementation project(':clients').sourceSets.test.output + testImplementation project(':server-common') testImplementation project(':server-common').sourceSets.test.output + testImplementation libs.junitJupiter + testImplementation libs.mockitoCore + + testRuntimeOnly libs.slf4jlog4j } sourceSets { From d4142e9f57665bf387866f577d99987d3bd42f50 Mon Sep 17 00:00:00 2001 From: David Jacot Date: Tue, 8 Nov 2022 16:55:54 +0100 Subject: [PATCH 4/4] fixup --- build.gradle | 2 -- 1 file changed, 2 deletions(-) diff --git a/build.gradle b/build.gradle index a63e54f65c718..ea2d3762ce537 100644 --- a/build.gradle +++ b/build.gradle @@ -1233,9 +1233,7 @@ project(':group-coordinator') { implementation project(':clients') implementation libs.slf4jApi - testImplementation project(':clients') testImplementation project(':clients').sourceSets.test.output - testImplementation project(':server-common') testImplementation project(':server-common').sourceSets.test.output testImplementation libs.junitJupiter testImplementation libs.mockitoCore