+1 (non-binding)

On Wed, Jun 26, 2019 at 8:37 AM Satish Duggana <satish.dugg...@gmail.com> wrote:
>
> +1 Matthias/Andy.
> IMHO, interface is about the contract, it should not have/expose any
> implementation. I am fine with either way as it is more of taste or
> preference.
>
> Agree with Ismael/Colin/Ryanne on not deprecating for good reasons.
>
>
> On Mon, Jun 24, 2019 at 8:33 PM 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
> > > >>>>>>>>>>>>
> > > >>>>>>>>>>>
> > > >>>>>>>>>>
> > > >>>>>>>>>
> > > >>>>>>>>>
> > > >>>>>>>>
> > > >>>>>>>
> > > >>>>>>
> > > >>>>>
> > > >>>>
> > > >>
> > > >>
> > > >
> > >
> > >

Reply via email to