THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
class Window { //Existing methods. Will be deprecated. Window(final long startMs, final long endMs) throws IllegalArgumentException; //New methods. Window(final Instant start, final Instant end) throws IllegalArgumentException; Instant startTime(); Instant endTime(); } JoinWindows { //Existing methods. Will be deprecated. static JoinWindows of(final long timeDifferenceMs) throws IllegalArgumentException; JoinWindows before(final long timeDifferenceMs) throws IllegalArgumentException; JoinWindows after(final long timeDifferenceMs) throws IllegalArgumentException; long size(); //Existing method. Will be removed. JoinWindows grace(final long millisAfterWindowEnd); //New methods. static JoinWindows of(final Duration timeDifference) throws IllegalArgumentException; JoinWindows before(final Duration timeDifference) throws IllegalArgumentException; JoinWindows after(final Duration timeDifference) throws IllegalArgumentException; JoinWindows grace(final Duration afterWindowEnd); Map<Instant, Window> windowsForTime(final Instant timestamp); Duration windowSize(); } Materialized { //Existing method. Will be removed. Materialized<K, V, S> withRetention(final long retentionMs); //New method. Materialized<K, V, S> withRetention(final Duration retention); } SessionWindows { //Existing methods. Will be deprecated. static SessionWindows with(final long inactivityGapMs); //Existing methods. Will be removed. SessionWindows grace(final long millisAfterWindowEnd); //New methods. static SessionWindows with(final Duration inactivityGap); SessionWindows grace(final Duration afterWindowEnd); } TimeWindowedDeserializer { //Existing methods. Will be deprecated. TimeWindowedDeserializer(final Deserializer<T> inner, final long windowSizeMs); //New methods. TimeWindowedDeserializer(final Deserializer<T> inner, final Duration windowSize); Duration windowSize(); } TimeWindows { //Existing methods. Will be deprecated. static TimeWindows of(final long sizeMs) throws IllegalArgumentException; TimeWindows advanceBy(final long advanceMs); long size(); //Existing method. Will be removed. TimeWindows grace(final long millisAfterWindowEnd); //New methods. static TimeWindows of(final Duration size) throws IllegalArgumentException; TimeWindows advanceBy(final Duration advance); Map<Instant, TimeWindow> windowsFor(final Instant timestamp); Duration windowSize(); TimeWindows grace(final Duration afterWindowEnd); } UnlimitedWindows { //Existing methods. Will be deprecated. UnlimitedWindows startOn(final long startMs) throws IllegalArgumentException; long size(); //Existing method. Will be removed. UnlimitedWindows grace(final long millisAfterWindowEnd); //New methods. UnlimitedWindows startOn(final Instant start) throws IllegalArgumentException; Map<Instant, UnlimitedWindow> windowsFor(final Instant timestamp); Duration windowSize(); UnlimitedWindows grace(final Duration afterWindowEnd); } ProcessorContext { //Existing method. Will be deprecated. Cancellable schedule(final long intervalMs, final PunctuationType type, final Punctuator callback); //New method. Cancellable schedule(final Duration interval, final PunctuationType type, final Punctuator callback); } ReadOnlyWindowStore<K, V> { //Existing methods. Will be deprecated. //New methods. WindowStoreIterator<V> fetch(K key, Instant from, Duration duration); KeyValueIterator<Windowed<K>, V> fetch(K from, K to, Instant from, Duration duration); KeyValueIterator<Windowed<K>, V> fetchAll(Instant from, Duration duration); } SessionBytesStoreSupplier { //Existing methods. Will be deprecated. long segmentIntervalMs(); long retentionPeriod(); //New methods. Duration segmentInterval(); Duration retentionPeriodDuration(); } SessionStore { //New methods. KeyValueIterator<Windowed<K>, AGG> findSessions(final K key, Instant earliestSessionEnd, final Instant latestSessionStart); KeyValueIterator<Windowed<K>, AGG> findSessions(final K keyFrom, final K keyTo, Instant earliestSessionEnd, final Instant latestSessionStart); } Stores { //Existing methods. Will be deprecated. static WindowBytesStoreSupplier persistentWindowStore(final String name, final long retentionPeriodMs, final long windowSizeMs, final boolean retainDuplicates); static WindowBytesStoreSupplier persistentWindowStore(final String name, final long retentionPeriodMs, final long windowSizeMs, final boolean retainDuplicates, final long segmentIntervalMs); static SessionBytesStoreSupplier persistentSessionStore(final String name, final long retentionPeriodMs); //New methods. static WindowBytesStoreSupplier persistentWindowStore(final String name, final Duration retentionPeriod, final Duration windowSize, final boolean retainDuplicates); static WindowBytesStoreSupplier persistentWindowStore(final String name, final Duration retentionPeriod, final Duration windowSize, final boolean retainDuplicates, final Duration segmentInterval); static SessionBytesStoreSupplier persistentSessionStore(final String name, final Duration retentionPeriod); } WindowBytesStoreSupplier { //Existing methods. Will be deprecated. long segmentIntervalMs(); long windowSize(); long retentionPeriod(); //New methods. Duration segmentInterval(); Duration windowSizeDuration(); Duration retentionPeriodDuration(); } KafkaStreams { //Existing method. Will be deprecated. public synchronized boolean close(final long timeout, final TimeUnit timeUnit); //New method public synchronized boolean close(final Duration timeout) } |
Proposed Changes
New methods in public API are proposed. See "Public Interfaces" section.
...