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() {
}
@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().