Hi John,
In general, we do not guarantee anything on APIs of the internal
package. That is also the reason why you do not need a KIP to change
those classes. Any class for which the build generates Javadoc is
considered public API [1]. For public APIs we guarantee backwards
compatibility.
Best,
Bruno
[1]
https://cwiki.apache.org/confluence/display/KAFKA/Kafka+Improvement+Proposals
On 12/18/23 1:46 PM, John Brackin wrote:
Hi all,
I have a question about using classes that are are public but the class is
contained in the internals packages Generally, would it be supported if I
wrote Kafka code referencing these classes?
This question comes from an attempt to add a CacheListener to a
TimestampedKeyValueStore. The line of code looks like this:
cachingEnabled = ((WrappedStateStore) this.store).setFlushListener(new
AggregateCacheFlushListener<>(context), false);
To gain access to the setFlushListener the code needs to cast the
underlying state store object to a
org.apache.kafka.streams.state.internals.WrappedStateStore object.
Kind regards,
John Brackin