It seems wrong to require inheritance for this and we already have a public
constructor. I would make both of them public.

Ismael

On Fri, Nov 3, 2023 at 10:47 AM Matthias J. Sax <mj...@apache.org> wrote:

> +1 (binding)
>
>
> About "why not public" question:
>
> I think we need to distinguish between "end users" who create a producer
> instance, and "external parties" that might implement their own
> `Producer` (or wrap/extend `KafkaProducer`).
>
> In the end, I would not expect an "end user" to actually call `new
> ProducerConfig` to begin with. If one creates a `KafkaProducer` they
> pass the config via a `Map` or `Properties`, and the producer creates
> `ProducerConfig` internally only. -- Thus, there is no need to make it
> `public`. (To this end, I don't actually understand why there is public
> `ProducerConfig` constructors to begin with -- sounds like a leaky
> abstraction to me.)
>
> On the other hand, if a "third party" implements `Producer` interface to
> ship their own producer implementation, they might want to create
> `ProducerConfig` internally, so for them it's different, but still, they
> don't need public access because they can extend `ProducerConfig`, too
> for this case). -- To me, this falls into the category "simple thing
> should be easy, and hard things should be possible).
>
>
> -Matthias
>
>
> On 11/3/23 6:06 AM, Ismael Juma wrote:
> > Hi Sophie,
> >
> > I was trying to understand the goal of the change and it's not totally
> > clear to me. If the goal is to allow third party applications to
> customize
> > the logging behavior, why is the method protected instead of public?
> >
> > Ismael
> >
> > On Thu, Nov 2, 2023 at 9:55 PM Sophie Blee-Goldman <
> sop...@responsive.dev>
> > wrote:
> >
> >> Hey all,
> >>
> >> This is a trivial one-liner change that it was determined should go
> through
> >> a KIP during the PR review process (see this thread
> >> <https://github.com/apache/kafka/pull/14681#discussion_r1378591228> for
> >> context). Since the change itself was already reviewed and approved I'm
> >> skipping the discussion thread and bringing it to a vote right away,
> but of
> >> course I'm open to feedback and can create a discussion thread if there
> is
> >> need for it.
> >>
> >> The change itself is simply adding the `protected` modifier to the
> >> ProducerConfig constructor that allows for silencing the config logging.
> >> This just brings the ProducerConfig in alignment with the other client
> >> configs, all of which already had this constructor as protected.
> >>
> >> KIP:
> >>
> >>
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-998%3A+Give+ProducerConfig%28props%2C+doLog%29+constructor+protected+access
> >> PR: https://github.com/apache/kafka/pull/14681
> >>
> >> Thanks!
> >> Sophie
> >>
> >
>

Reply via email to