Skip to main content

Re: Question about using public classes from the internal packages

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
>

Comments