+1 (binding). C.
On Mon, Jun 24, 2019, at 08:10, Andy Coates wrote: > Hi all, > > KIP updated: > - No deprecation > - Factory method back onto Admin interface > > I'd like to kick off another round of voting please. > > Thanks, > > Andy > > On Mon, 24 Jun 2019 at 16:03, Andy Coates <a...@confluent.io> wrote: > > > I agree Matthias. > > > > (In Scala, such factory methods are on a companion object. As Java doesn't > > have the concept of a companion object, an equivalent would be a utility > > class with a similar name...) > > > > However, I'll update the KIP to include the factory method on the > > interface. > > > > On Fri, 21 Jun 2019 at 23:40, Matthias J. Sax <matth...@confluent.io> > > wrote: > > > >> I still think, that an interface does not need to know anything about > >> its implementation. But I am also fine if we add a factory method to the > >> new interface if that is preferred by most people. > >> > >> > >> -Matthias > >> > >> On 6/21/19 7:10 AM, Ismael Juma wrote: > >> > This is even more reason not to deprecate immediately, there is very > >> little > >> > maintenance cost for us. We should be mindful that many of our users (eg > >> > Spark, Flink, etc.) typically allow users to specify the kafka clients > >> > version and hence avoid using new classes/interfaces for some time. They > >> > would get a bunch of warnings they cannot do anything about apart from > >> > suppressing. > >> > > >> > Ismael > >> > > >> > On Fri, Jun 21, 2019 at 4:00 AM Andy Coates <a...@confluent.io> wrote: > >> > > >> >> Hi Ismael, > >> >> > >> >> I’m happy enough to not deprecate the existing `AdminClient` class as > >> part > >> >> of this change. > >> >> > >> >> However, note that, the class will likely be empty, i.e. all methods > >> and > >> >> implementations will be inherited from the interface: > >> >> > >> >> public abstract class AdminClient implements Admin { > >> >> } > >> >> > >> >> Not marking it as deprecated has the benefit that users won’t see any > >> >> deprecation warnings on the next release. Conversely, deprecating it > >> will > >> >> mean we can choose to remove this, now pointless class, in the future > >> if we > >> >> choose. > >> >> > >> >> That’s my thinking for deprecation, but as I’ve said I’m happy either > >> way. > >> >> > >> >> Andy > >> >> > >> >>> On 18 Jun 2019, at 16:09, Ismael Juma <ism...@juma.me.uk> wrote: > >> >>> > >> >>> I agree with Ryanne, I think we should avoid deprecating AdminClient > >> and > >> >>> causing so much churn for users who don't actually care about this > >> niche > >> >>> use case. > >> >>> > >> >>> Ismael > >> >>> > >> >>> On Tue, Jun 18, 2019 at 6:43 AM Andy Coates <a...@confluent.io> > >> wrote: > >> >>> > >> >>>> Hi Ryanne, > >> >>>> > >> >>>> If we don't change the client code, then everywhere will still expect > >> >>>> subclasses of `AdminClient`, so the interface will be of no use, > >> i.e. I > >> >>>> can't write a class that implements the new interface and pass it to > >> the > >> >>>> client code. > >> >>>> > >> >>>> Thanks, > >> >>>> > >> >>>> Andy > >> >>>> > >> >>>> On Mon, 17 Jun 2019 at 19:01, Ryanne Dolan <ryannedo...@gmail.com> > >> >> wrote: > >> >>>> > >> >>>>> Andy, while I agree that the new interface is useful, I'm not > >> convinced > >> >>>>> adding an interface requires deprecating AdminClient and changing so > >> >> much > >> >>>>> client code. Why not just add the Admin interface, have AdminClient > >> >>>>> implement it, and have done? > >> >>>>> > >> >>>>> Ryanne > >> >>>>> > >> >>>>> On Mon, Jun 17, 2019 at 12:09 PM Andy Coates <a...@confluent.io> > >> >> wrote: > >> >>>>> > >> >>>>>> Hi all, > >> >>>>>> > >> >>>>>> I think I've addressed all concerns. Let me know if I've not. Can > >> I > >> >>>> call > >> >>>>>> another round of votes please? > >> >>>>>> > >> >>>>>> Thanks, > >> >>>>>> > >> >>>>>> Andy > >> >>>>>> > >> >>>>>> On Fri, 14 Jun 2019 at 04:55, Satish Duggana < > >> >> satish.dugg...@gmail.com > >> >>>>> > >> >>>>>> wrote: > >> >>>>>> > >> >>>>>>> Hi Andy, > >> >>>>>>> Thanks for the KIP. This is a good change and it gives the user a > >> >>>>> better > >> >>>>>>> handle on Admin client usage. I agree with the proposal except the > >> >>>> new > >> >>>>>>> `Admin` interface having all the methods from `AdminClient` > >> abstract > >> >>>>>> class. > >> >>>>>>> It should be kept clean having only the admin operations as > >> methods > >> >>>>> from > >> >>>>>>> KafkaClient abstract class but not the factory methods as > >> mentioned > >> >>>> in > >> >>>>>> the > >> >>>>>>> earlier mail. > >> >>>>>>> > >> >>>>>>> I know about dynamic proxies(which were widely used in RMI/EJB > >> >>>> world). > >> >>>>> I > >> >>>>>> am > >> >>>>>>> curious about the usecase using dynamic proxies with Admin client > >> >>>>>>> interface. Dynamic proxy can have performance penalty if it is > >> used > >> >>>> in > >> >>>>>>> critical path. Is that the primary motivation for creating the > >> KIP? > >> >>>>>>> > >> >>>>>>> Thanks, > >> >>>>>>> Satish. > >> >>>>>>> > >> >>>>>>> On Wed, Jun 12, 2019 at 8:43 PM Andy Coates <a...@confluent.io> > >> >>>> wrote: > >> >>>>>>> > >> >>>>>>>> I'm not married to that part. That was only done to keep it more > >> >>>> or > >> >>>>>> less > >> >>>>>>>> inline with what's already there, (an abstract class that has a > >> >>>>> factory > >> >>>>>>>> method that returns a subclass.... sounds like the same > >> >>>> anti-pattern > >> >>>>>> ;)) > >> >>>>>>>> > >> >>>>>>>> An alternative would to have an `AdminClients` utility class to > >> >>>>> create > >> >>>>>>> the > >> >>>>>>>> admin client. > >> >>>>>>>> > >> >>>>>>>> On Mon, 10 Jun 2019 at 19:31, Matthias J. Sax < > >> >>>> matth...@confluent.io > >> >>>>>> > >> >>>>>>>> wrote: > >> >>>>>>>> > >> >>>>>>>>> Hmmm... > >> >>>>>>>>> > >> >>>>>>>>> So the new interface, returns an instance of a class that > >> >>>>> implements > >> >>>>>>> the > >> >>>>>>>>> interface. This sounds a little bit like an anti-pattern? > >> >>>> Shouldn't > >> >>>>>>>>> interfaces actually not know anything about classes that > >> >>>> implement > >> >>>>>> the > >> >>>>>>>>> interface? > >> >>>>>>>>> > >> >>>>>>>>> > >> >>>>>>>>> -Matthias > >> >>>>>>>>> > >> >>>>>>>>> On 6/10/19 11:22 AM, Andy Coates wrote: > >> >>>>>>>>>> `AdminClient` would be deprecated purely because it would no > >> >>>>> longer > >> >>>>>>>> serve > >> >>>>>>>>>> any purpose and would be virtually empty, getting all of its > >> >>>>>>>>> implementation > >> >>>>>>>>>> from the new interfar. It would be nice to remove this from the > >> >>>>> API > >> >>>>>>> at > >> >>>>>>>>> the > >> >>>>>>>>>> next major version bump, hence the need to deprecate. > >> >>>>>>>>>> > >> >>>>>>>>>> `AdminClient.create()` would return what it does today, (so > >> >>>> not a > >> >>>>>>>>> breaking > >> >>>>>>>>>> change). > >> >>>>>>>>>> > >> >>>>>>>>>> On Tue, 4 Jun 2019 at 22:24, Ryanne Dolan < > >> >>>> ryannedo...@gmail.com > >> >>>>>> > >> >>>>>>>> wrote: > >> >>>>>>>>>> > >> >>>>>>>>>>>> The existing `AdminClient` will be marked as deprecated. > >> >>>>>>>>>>> > >> >>>>>>>>>>> What's the reasoning behind this? I'm fine with the other > >> >>>>> changes, > >> >>>>>>> but > >> >>>>>>>>>>> would prefer to keep the existing public API intact if it's > >> >>>> not > >> >>>>>>>> hurting > >> >>>>>>>>>>> anything. > >> >>>>>>>>>>> > >> >>>>>>>>>>> Also, what will AdminClient.create() return? Would it be a > >> >>>>>> breaking > >> >>>>>>>>> change? > >> >>>>>>>>>>> > >> >>>>>>>>>>> Ryanne > >> >>>>>>>>>>> > >> >>>>>>>>>>> On Tue, Jun 4, 2019, 11:17 AM Andy Coates <a...@confluent.io> > >> >>>>>>> wrote: > >> >>>>>>>>>>> > >> >>>>>>>>>>>> Hi folks > >> >>>>>>>>>>>> > >> >>>>>>>>>>>> As there's been no chatter on this KIP I'm assuming it's > >> >>>>>>>>> non-contentious, > >> >>>>>>>>>>>> (or just boring), hence I'd like to call a vote for KIP-476: > >> >>>>>>>>>>>> > >> >>>>>>>>>>>> > >> >>>>>>>>>>>> > >> >>>>>>>>> > >> >>>>>>>> > >> >>>>>>> > >> >>>>>> > >> >>>>> > >> >>>> > >> >> > >> https://cwiki.apache.org/confluence/display/KAFKA/KIP-476%3A+Add+Java+AdminClient+Interface > >> >>>>>>>>>>>> > >> >>>>>>>>>>>> Thanks, > >> >>>>>>>>>>>> > >> >>>>>>>>>>>> Andy > >> >>>>>>>>>>>> > >> >>>>>>>>>>> > >> >>>>>>>>>> > >> >>>>>>>>> > >> >>>>>>>>> > >> >>>>>>>> > >> >>>>>>> > >> >>>>>> > >> >>>>> > >> >>>> > >> >> > >> >> > >> > > >> > >> >