Status

Current state: Accepted

Discussion thread: None

Voting thread : Here

JIRA:

Motivation

In the 2.5 release, we introduce new classes for Interactive Queries via KIP-535 (https://issues.apache.org/jira/browse/KAFKA-6144).

The KIP did not specify the names for getter methods of `KeyQueryMetadata` explicitly and they were added in the PR as `getActiveHost()`, `getStandbyHosts()`, and `getPartition()`.

However, in Kafka it is custom to not use the `get` prefix for getters and thus the methods should have `activeHost()`, `standbyHosts()`, and `partition()`, respectively.

We need to rename the methods accordingly, by deprecating the existing ones and adding the new ones in parallel.

Public Interfaces

We propose to add 3 new getters without the prefix 'get' and deprecate the existing 3 getters in KeyQueryMetadata.java. The changes that are to be made in the class on a high-level is mentioned below. 

package org.apache.kafka.streams;
public class KeyQueryMetadata{
//deprecated
	@Deprecated
    public HostInfo getActiveHost() {
        return activeHost;
    }
//deprecated
	@Deprecated
    public Set<HostInfo> getStandbyHosts() {
        return standbyHosts;
    }    
//deprecated
	@Deprecated
    public int getPartition() {
        return partition;
    }

//new
    public HostInfo activeHost() {
        return activeHost;
    }
//new
    public Set<HostInfo> standbyHosts() {
        return standbyHosts;
    }    
//new
    public int partition() {
        return partition;
    }
}

Proposed Changes

Deprecate the existing getters and add new getters without the prefix 'get' . Add the getters `activeHost()`, `standbyHosts()`, and `partition()` to KeyQueryMetadata.java.

Update the existing Tests to use the new getters of KeyQueryMetadata.java . Below are the Test classes that needs to update with new getters 

Compatibility, Deprecation, and Migration Plan

Rejected Alternatives

None