-
Notifications
You must be signed in to change notification settings - Fork 13.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
KAFKA-2366: Copycat #99
Closed
+11,116
−15
Closed
Changes from 21 commits
Commits
Show all changes
29 commits
Select commit
Hold shift + click to select a range
11981d2
Add copycat-data and copycat-api
ewencp 0233456
Add copycat-avro and copycat-runtime
ewencp e14942c
Add Copycat file connector.
ewencp 31cd1ca
Add CLI tools for Copycat.
ewencp 4a9b4f3
Add some helpful Copycat-specific build and test targets that cover a…
ewencp dec1379
Switch to using new consumer coordinator instead of manually assignin…
ewencp e849e10
Remove duplicated TopicPartition implementation.
ewencp 5a618c6
Remove offset serializers, instead reusing the existing serializers a…
ewencp 1243a7c
Merge remote-tracking branch 'origin/trunk' into copycat
ewencp 220e42d
Replace Avro serializer with JSON serializer.
ewencp 0aefe21
Add log4j settings for Copycat.
ewencp 25b5739
Fix sink task offset commit concurrency issue by moving it to the wor…
ewencp 4674d13
Address review comments, clean up some code styling.
ewencp 6ba87de
Remove most of the Avro-based mock runtime data API, only preserving …
ewencp 122423e
Style cleanup
ewencp be5c387
Minor cleanup
ewencp e345142
Remove Copycat reflection utils, use existing Utils and ConfigDef fun…
ewencp 0b5a1a0
Normalize naming to use partition for both source and Kafka, adjustin…
ewencp b194c73
Split Copycat converter option into two options for key and value.
ewencp 6787a85
Make Converter generic to match serializers since some serialization …
ewencp d713a21
Address Gwen's review comments.
ewencp b29cb2c
Merge remote-tracking branch 'origin/trunk' into copycat
ewencp d55d31e
Reorganize Copycat code to put it all under one top-level directory.
ewencp 0fa7a36
Mark Copycat classes as unstable and reduce visibility of some classe…
ewencp c0e5fdc
Merge remote-tracking branch 'origin/trunk' into copycat
ewencp 656a003
Clarify and expand the explanation of the Copycat Coordinator interface.
ewencp 7bf8075
Make Copycat CLI speific to standalone mode, clean up some config and…
ewencp 8c108b0
Rename Coordinator to Herder to avoid confusion with the consumer coo…
ewencp a3a47a6
Simplify Copycat exceptions, make them a subclass of KafkaException.
ewencp File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
#!/bin/sh | ||
# 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. | ||
|
||
base_dir=$(dirname $0) | ||
|
||
if [ "x$KAFKA_LOG4J_OPTS" = "x" ]; then | ||
export KAFKA_LOG4J_OPTS="-Dlog4j.configuration=file:$base_dir/../config/copycat-log4j.properties" | ||
fi | ||
|
||
exec $(dirname $0)/kafka-run-class.sh org.apache.kafka.copycat.cli.Copycat "$@" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A quick comment on packaging. Could we put all copycat projects under a single directory (like what we did contrib/)? Also, is there a need to have different jars for api, data and runtime? It seems that they all need to be used together.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
data + api can definitely be combined. I personally like using this separation to enforce clean layering, but there's not much risk of messing that up with those two.
The reason for splitting api and runtime is that connector developers should only need the api jar. Again, this is a way to really force proper layering, be clear about what we want to expose as public API to connector developers, etc.