Table of Contents |
---|
Status
Current state: "Under DiscussionAccepted"
Discussion thread: here
JIRA: KAFKA-6966
Release: 2.1
Please keep the discussion on the mailing list rather than commenting on the wiki (wiki discussions get unwieldy fast).
...
Code Block | ||
---|---|---|
| ||
public interface TopologyDescription {
// Other interfaces and variables within TopologyDescription are not shown here.
interface Source extends Node {
String topics();
Set<String> topicSet()
Pattern topicPattern();
}
interface Sink extends Node {
String topic();
// Add abstract method to return the TopicNameExtractor class in situations where dynamic routing is used.
// Otherwise, return null.
TopicNameExtractor topicNameExtractor();
}
} |
...
Code Block | ||
---|---|---|
| ||
public final static class Source extends AbstractNode implements TopologyDescription.Source { // Other methods and variables are not shown here @Override public String topics() { return topics.toString(); } @Override public Set<String> topicSet() { return topics; } @Override public Pattern topicPattern() { return topicPattern; } } public final static class Sink extends AbstractNode implements TopologyDescription.Sink { // Other methods and variables are not shown here // Output the topic name if dynamic routing is not used. Otherwise, output the toString value of the TopicNameExtractor. @Override public TopicNameExtractor topicNameExtractor() { if (topicNameExtractor instanceof StaticTopicNameExtractor) { return null; } else { return topicNameExtractor; } } } |
Compatibility, Deprecation, and Migration Plan
No known compatibility issuesDeprecating topics() because it is no longer needed with the addition of topicSet(). In order to get the same functionality, a user can just call topicSet().toString().