diff --git a/build.gradle b/build.gradle index 57d4b74665da4..ea2d3762ce537 100644 --- a/build.gradle +++ b/build.gradle @@ -865,10 +865,12 @@ project(':core') { api libs.scalaLibrary implementation project(':server-common') + implementation project(':group-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(':group-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,40 @@ project(':metadata') { } } +project(':group-coordinator') { + archivesBaseName = "kafka-group-coordinator" + + dependencies { + implementation project(':server-common') + implementation project(':clients') + implementation libs.slf4jApi + + testImplementation project(':clients').sourceSets.test.output + testImplementation project(':server-common').sourceSets.test.output + testImplementation libs.junitJupiter + testImplementation libs.mockitoCore + + testRuntimeOnly libs.slf4jlog4j + } + + 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/group-coordinator/.gitignore b/group-coordinator/.gitignore new file mode 100644 index 0000000000000..ae3c1726048cd --- /dev/null +++ b/group-coordinator/.gitignore @@ -0,0 +1 @@ +/bin/ diff --git a/group-coordinator/src/main/java/org/apache/kafka/coordinator/group/GroupCoordinator.java b/group-coordinator/src/main/java/org/apache/kafka/coordinator/group/GroupCoordinator.java new file mode 100644 index 0000000000000..3bf5f2ed5729a --- /dev/null +++ b/group-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/group-coordinator/src/test/resources/log4j.properties b/group-coordinator/src/test/resources/log4j.properties new file mode 100644 index 0000000000000..db3879386f10f --- /dev/null +++ b/group-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..513ca90f8945a 100644 --- a/settings.gradle +++ b/settings.gradle @@ -25,6 +25,7 @@ include 'clients', 'core', 'examples', 'generator', + 'group-coordinator', 'jmh-benchmarks', 'log4j-appender', 'metadata',