Current state: "Rejected"
Discussion thread: here
Released: <Kafka Version>
Please keep the discussion on the mailing list rather than commenting on the wiki (wiki discussions get unwieldy fast).
As of 2.6, there is a glitch in
Admin#describeLogDirs method. This method returns
DescribeLogDirsResult, whose methods return
org.apache.kafka.common.requests.DescribeLogDirsResponse.LogDirInfo instances (which in turn contains
DescribeLogDirsResponse.ReplicaInfo instances.) However,
org.apache.kafka.common.requests package is not a public package; as a result, the Javadoc of
DescribeLogDirsResult class does not provide any information about the
The API itself is still callable, but this glitch makes the users of this API call have to make a rough guess about how to use this class.
DescribeLogDirsResponse.[LogDirInfo, ReplicaInfo] are intended to be used as a internal class. So, it would be better to hide these classes from the public and provide other public classes instead.
For the consistency with other Result classes (e.g.,
DescribeLogDirsResult now provides the following inner classes:
ReplicaInfo. Each of them inherits
DescribeLogDirsResponse.ReplicaInfo for backward compatibility.
DescribeLogDirsResponse.LogDirInfois now deprecated, in favor of
ReplicaInfois now deprecated, in favor of
DescribeLogDirsResponse.LogDirInfo.replicaInfosis also deprecated in favor of
The return type of
DescribeLogDirsResult#[all, values] are not changed. Instead, they now return
LogDirInfo instances instead of
DescribeLogDirsResponse.LogDirInfo. The return type change is a future work.
Compatibility, Deprecation, and Migration Plan
Since the new classes inherit the older classes, there will be no code-breaking. Instead, the users will be informed to change the old code with deprecation warnings and Javadoc notes.