The KIP has been updated to include the changes to the
ConnectRestExtensionContext.

On Tue, Jul 9, 2024 at 7:16 PM Christopher Shannon <
christopher.l.shan...@gmail.com> wrote:

> Thanks, I missed that, I can update the KIP tomorrow to include that.
>
> Chris
>
> On Tue, Jul 9, 2024 at 6:15 PM Chris Egerton <chr...@aiven.io.invalid>
> wrote:
>
>> Hi Chris,
>>
>> Thanks for the updates and the additional context. I have one last
>> nit after doing another readthrough: in the public interfaces section it
>> states that "There shouldn't be changes to the main client API as the API
>> doesn't use jakarta". This is almost true, but like Greg has mentioned
>> previously, there is the REST extension API: see the
>> ConnectRestExtensionContext interface [1] in the connect-api module. I
>> think we should call out that the signature of
>> ConnectRestExtensionContext::configurable will change to return an
>> instance
>> of jakarta.ws.rs.core.Configurable instead of
>> javax.ws.rs.core.Configurable.
>>
>> This doesn't block my approval of the KIP since I think that the above is
>> an acceptable change to make, but IMO it should be added to give a better
>> picture of the changes to anyone else who views the KIP.
>>
>> [1] -
>>
>> https://github.com/apache/kafka/blob/43676f7612b2155ecada54c61b129d996f58bae2/connect/api/src/main/java/org/apache/kafka/connect/rest/ConnectRestExtensionContext.java#L22
>>
>> Cheers,
>>
>> Other Chris
>>
>> On Tue, Jul 9, 2024 at 3:40 PM Christopher Shannon <
>> christopher.l.shan...@gmail.com> wrote:
>>
>> > Hi Chris,
>> >
>> > I can make those changes. For number 2 that was a holdover back when we
>> > were discussing 11 vs 12 and whether or not JDK 17 would be used, but we
>> > are going with 12 since 11 is deprecated so I will fix that.
>> >
>> >
>> > On Tue, Jul 9, 2024 at 2:54 PM Chris Egerton <chr...@aiven.io.invalid>
>> > wrote:
>> >
>> > > Hi Chris,
>> > >
>> > > Thanks for the KIP! It's a bit of a drastic change to rip the bandaid
>> off
>> > > like this and require users running Connect to upgrade to JDK 17, but
>> I
>> > > think it's the best out of the options that are available to us.
>> > >
>> > > Two small nits on the KIP:
>> > > 1. It'd be nice to link to KIP-1013 in the motivation section to
>> > establish
>> > > that there is already some precedent for bumping to JDK 17+ for
>> > server-side
>> > > components (i.e., Kafka brokers) in 4.0.
>> > > 2. In the compatibility section it's stated that "JDK 17+ will be
>> > required
>> > > if Jetty 12.x is chosen to be used". This is a pretty big "if". My
>> > > understanding is that we will definitely be using Jetty 12.x; can we
>> > remove
>> > > the "if" or is it still up for debate whether we'll do that switch for
>> > > Connect?
>> > >
>> > > Cheers,
>> > >
>> > > Other Chris
>> > >
>> > > On Tue, Jul 9, 2024 at 10:49 AM Christopher Shannon <
>> > > christopher.l.shan...@gmail.com> wrote:
>> > >
>> > > > Hi Greg,
>> > > >
>> > > > I will make a couple quick tweaks and open a vote. I think we should
>> > > target
>> > > > JDK 17, JavaEE 10 and Jetty 12 because Jetty 11 is now EOL.
>> > > >
>> > > > Chris
>> > > >
>> > > > On Mon, Jul 8, 2024 at 2:13 PM Greg Harris
>> > <greg.har...@aiven.io.invalid
>> > > >
>> > > > wrote:
>> > > >
>> > > > > Hi Chris,
>> > > > >
>> > > > > Please open a vote thread for this.
>> > > > >
>> > > > > Thanks,
>> > > > > Greg
>> > > > >
>> > > > > On Tue, May 14, 2024 at 9:07 AM Christopher Shannon <
>> > > > > christopher.l.shan...@gmail.com> wrote:
>> > > > >
>> > > > > > I just wanted to bump this and see if anyone had more feedback
>> > before
>> > > > > > trying to call a vote for this for 4.0?
>> > > > > >
>> > > > > > Chris
>> > > > > >
>> > > > > > On Mon, Apr 1, 2024 at 3:41 PM Christopher Shannon <
>> > > > > > christopher.l.shan...@gmail.com> wrote:
>> > > > > >
>> > > > > > > Greg,
>> > > > > > >
>> > > > > > > 1. Ok sounds good we can target JDK 17 in this KIP if we
>> decide
>> > to
>> > > do
>> > > > > > that.
>> > > > > > > 2. For the EE version, I don't think it really matters since
>> we
>> > > won't
>> > > > > be
>> > > > > > > using any new features that I am aware of. It's just
>> something I
>> > > > > noticed
>> > > > > > > that we will need to pick because Jetty 12 supports multiple
>> > > versions
>> > > > > so
>> > > > > > it
>> > > > > > > would affect which spec jars we use.  In the past Jetty
>> versions
>> > > have
>> > > > > > been
>> > > > > > > tied to a specific Servlet spec but the new Jetty 12 they have
>> > > > > abstracted
>> > > > > > > things away and they support multiple versions simultaneously.
>> > > > There's
>> > > > > > > different versions for all the specs but the primary one to
>> note
>> > > for
>> > > > us
>> > > > > > > would be that JavaEE 9 uses the Servlet 5.0 spec and JavaEE 10
>> > uses
>> > > > the
>> > > > > > > Servlet 6.0 spec. JavaEE 11 is under development and will use
>> the
>> > > > > Servlet
>> > > > > > > 6.1 spec. So we may not really need to call out the EE
>> version at
>> > > all
>> > > > > if
>> > > > > > it
>> > > > > > > doesn't matter and we are not using specific features but I
>> > wanted
>> > > to
>> > > > > > bring
>> > > > > > > it up since multiple versions are listed as being compatible
>> with
>> > > > Jetty
>> > > > > > 12
>> > > > > > > so we need to pick one. On the main page they list the
>> different
>> > > > > servlet
>> > > > > > > specs they support: https://eclipse.dev/jetty/
>> > > > > > > 3. Right, I didn't mean we should include it in the KIP, I was
>> > more
>> > > > > > asking
>> > > > > > > I guess how to go about things. It looks like we could use a
>> lot
>> > of
>> > > > it
>> > > > > > and
>> > > > > > > adapt the work already done. While it's under the Apache 2.0
>> > > license
>> > > > > and
>> > > > > > we
>> > > > > > > could use it, someone else wrote it so it would still be good
>> to
>> > > > > properly
>> > > > > > > credit that person as you mentioned. If I work on it I would
>> > > probably
>> > > > > > start
>> > > > > > > over with a new branch and just use the old PR as a guide and
>> > then
>> > > > > maybe
>> > > > > > > figure out a way to credit the original author. There's always
>> > that
>> > > > > > > co-author tag that could be used I think.
>> > > > > > >
>> > > > > > > Chris
>> > > > > > >
>> > > > > > >
>> > > > > > > On Mon, Apr 1, 2024 at 12:11 PM Greg Harris
>> > > > > <greg.har...@aiven.io.invalid
>> > > > > > >
>> > > > > > > wrote:
>> > > > > > >
>> > > > > > >> Hey Chris,
>> > > > > > >>
>> > > > > > >> Thanks for your questions!
>> > > > > > >>
>> > > > > > >> 1. KIPs are generally immutable once they've been voted on.
>> In
>> > > this
>> > > > > > >> case, I think it's better that this KIP include the bump to
>> Java
>> > > 17
>> > > > > > >> just for Connect and MirrorMaker 2, and should include that
>> in
>> > the
>> > > > KIP
>> > > > > > >> title.
>> > > > > > >> 2. I'm not familiar with the difference, can you provide some
>> > more
>> > > > > > >> context that would help us make a decision? AFAIU we haven't
>> > > > specified
>> > > > > > >> an EE version in the past, and we don't do any sort of
>> automated
>> > > > > > >> testing for compatibility. I think it would be good to call
>> out
>> > > > which
>> > > > > > >> components have JavaEE-sensitive dependencies (just
>> > > > connect-runtime?).
>> > > > > > >> We do not want to accidentally give users the idea that the
>> > > clients
>> > > > > > >> depend on the JavaEE version, as that could be very
>> confusing.
>> > > > > > >> 3. That's an implementation detail left up to anyone that
>> > effects
>> > > > this
>> > > > > > >> KIP on the repo, and doesn't need to be mentioned in the KIP
>> > > > itself. I
>> > > > > > >> have seen people adopt changes from un-merged PRs after the
>> > > original
>> > > > > > >> contributor has lost interest, while still crediting the
>> > original
>> > > > > > >> contributor for their portion of the changes. If you're doing
>> > > this,
>> > > > > > >> then it's ultimately up to your judgement.
>> > > > > > >>
>> > > > > > >> Thanks,
>> > > > > > >> Greg
>> > > > > > >>
>> > > > > > >> On Mon, Apr 1, 2024 at 6:30 AM Christopher Shannon
>> > > > > > >> <christopher.l.shan...@gmail.com> wrote:
>> > > > > > >> >
>> > > > > > >> > Hi Greg,
>> > > > > > >> >
>> > > > > > >> > Thanks for the detailed analysis on the connect framework.
>> It
>> > > > sounds
>> > > > > > >> like
>> > > > > > >> > hopefully we can go ahead and require JDK 17+ and bump that
>> > > > > dependency
>> > > > > > >> for
>> > > > > > >> > the ConnectRestExtensionContext.
>> > > > > > >> >
>> > > > > > >> > I agree we can leave it open and hear what others think as
>> > well
>> > > > > about
>> > > > > > >> the
>> > > > > > >> > requirement, if everyone ends up agreeing, I can update the
>> > KIP
>> > > to
>> > > > > > >> reflect
>> > > > > > >> > requiring JDK 17 and going with Jetty 12.
>> > > > > > >> >
>> > > > > > >> > I had a couple of questions
>> > > > > > >> > 1) If we go with JDK 17 as a requirement for the Connect
>> > > > framework,
>> > > > > > >> should
>> > > > > > >> > we modify and make that part of KIP-1013 or keep it in this
>> > one?
>> > > > > > >> > 2) Should we go with JavaEE 9 or JavaEE 10? I'm not sure
>> how
>> > > much
>> > > > it
>> > > > > > >> > matters in this case.
>> > > > > > >> > 3) Can we just re-open
>> > > https://github.com/apache/kafka/pull/10176
>> > > > > as
>> > > > > > a
>> > > > > > >> > starting point or maybe we can create a new PR and use it
>> as a
>> > > > > basis?
>> > > > > > >> It's
>> > > > > > >> > a bit old so I suspect there would be a ton of conflicts
>> so it
>> > > > might
>> > > > > > be
>> > > > > > >> > best to start over and use it as a guide. I can work on a
>> new
>> > PR
>> > > > > once
>> > > > > > we
>> > > > > > >> > are all on the same page. I don't think it would take too
>> long
>> > > to
>> > > > > put
>> > > > > > >> > together since most of the work is just dependency updates
>> and
>> > > > > package
>> > > > > > >> > renaming.
>> > > > > > >> >
>> > > > > > >> > Chris
>> > > > > > >> >
>> > > > > > >> >
>> > > > > > >> > On Fri, Mar 29, 2024 at 8:59 PM Greg Harris
>> > > > > > >> <greg.har...@aiven.io.invalid>
>> > > > > > >> > wrote:
>> > > > > > >> >
>> > > > > > >> > > Hey all,
>> > > > > > >> > >
>> > > > > > >> > > I looked into how Debezium handled the javax->jakarta
>> > > changeover
>> > > > > for
>> > > > > > >> > > Quarkus, and found this release note:
>> > > > > > >> > >
>> > > > > > >> > >
>> > > > > > >>
>> > > > > >
>> > > > >
>> > > >
>> > >
>> >
>> https://debezium.io/blog/2023/04/20/debezium-2-2-final-released/#new-quarkus-3
>> > > > > > >> > > It appears that Debezium 2.1 required Quarkus < 3.0, and
>> > > > Debezium
>> > > > > > 2.2
>> > > > > > >> > > required Quarkus >= 3.0. The upgrade for Kafka could be
>> very
>> > > > > similar
>> > > > > > >> > > and not incur a major version release.
>> > > > > > >> > >
>> > > > > > >> > >  We can leave some time to hear from anyone else that is
>> > > > impacted
>> > > > > by
>> > > > > > >> > > this change, but from the open source projects present on
>> > > > github,
>> > > > > > this
>> > > > > > >> > > LGTM.
>> > > > > > >> > >
>> > > > > > >> > > Thanks,
>> > > > > > >> > > Greg
>> > > > > > >> > >
>> > > > > > >> > > On Fri, Mar 29, 2024 at 5:27 PM Greg Harris <
>> > > > greg.har...@aiven.io
>> > > > > >
>> > > > > > >> wrote:
>> > > > > > >> > > >
>> > > > > > >> > > > Hi Chris,
>> > > > > > >> > > >
>> > > > > > >> > > > Thank you so much for opening this KIP, and making sure
>> > > Kafka
>> > > > > > keeps
>> > > > > > >> up
>> > > > > > >> > > > with the rest of the Java ecosystem!
>> > > > > > >> > > >
>> > > > > > >> > > > I took a look around at some Open Source connector
>> > > > > > implementations,
>> > > > > > >> > > > and checked their Java version support:
>> > > > > > >> > > > * The Aiven connect plugins (http, bigquery, jdbc,
>> > > > > elasticsearch,
>> > > > > > >> > > > opensearch, commons, s3, transforms, gcs), 6/9 are
>> tested
>> > > with
>> > > > > JDK
>> > > > > > >> 17
>> > > > > > >> > > > in CI, 2/9 JDK 11, and 1/9 JDK 8. I'll look into
>> improving
>> > > the
>> > > > > > >> testing
>> > > > > > >> > > > matrix, but I don't expect substantial problems with
>> > > requiring
>> > > > > JDK
>> > > > > > >> 17.
>> > > > > > >> > > > * The Debezium Project lists Java 11+ compatibility:
>> > > > > > >> > > > https://debezium.io/releases/ and appears to use Java
>> 22
>> > > (ga)
>> > > > > and
>> > > > > > >> 23
>> > > > > > >> > > > (ea) in their CI:
>> > > > > > >> > > >
>> > > > > > >> > >
>> > > > > > >>
>> > > > > >
>> > > > >
>> > > >
>> > >
>> >
>> https://github.com/debezium/debezium/blob/9cdaa38453c9f065c6075d31636592a5b147518f/.github/workflows/jdk-outreach-workflow.yml#L20
>> > > > > > >> > > >
>> > > > > > >> > > > I think the bigger problem really is the
>> > > ConnectRestExtension,
>> > > > > > since
>> > > > > > >> > > > we've baked the rs-api type into the signature of
>> > > > > > >> > > > ConnectRestExtensionContext.
>> > > > > > >> > > > * Aiven doesn't have any ConnectRestExtensions, so this
>> > > isn't
>> > > > a
>> > > > > > >> concern
>> > > > > > >> > > for us.
>> > > > > > >> > > > * The Debezium Project has at least 6
>> ConnectRestExtension
>> > > > > > >> > > > implementations:
>> > > > > > >> > > >
>> > > > > > >> > >
>> > > > > > >>
>> > > > > >
>> > > > >
>> > > >
>> > >
>> >
>> https://github.com/search?q=repo%3Adebezium%2Fdebezium+ConnectRestExtension+language%3AJava&type=code&l=Java
>> > > > > > >> > > > . Some of these are baked into artifacts that I know
>> for a
>> > > > fact
>> > > > > > are
>> > > > > > >> > > > used in normal connect deployments.
>> > > > > > >> > > > * I found a healthcheck extension that looks
>> unmaintained:
>> > > > > > >> > > >
>> > > > > > >> > >
>> > > > > > >>
>> > > > > >
>> > > > >
>> > > >
>> > >
>> >
>> https://github.com/LoObp4ck/kafka-connect-healthchecks/blob/2d9dbfee900d9f85e6acd9a09bd04969afa46261/src/main/java/com/loobpack/data/kafka/connect/healthcheck/extension/HealthCheckConnectRestExtension.java#L9
>> > > > > > >> > > >
>> > > > > > >> > > > I figure that adopting this KIP would mean that the
>> > Debezium
>> > > > > > project
>> > > > > > >> > > > would be forced to bump their major version 3.0 to be
>> > > > compatible
>> > > > > > >> with
>> > > > > > >> > > > Connect 4.0, or otherwise change their packaging, so
>> I'd
>> > > like
>> > > > to
>> > > > > > >> hear
>> > > > > > >> > > > from the Debezium folks what they think of this
>> proposal.
>> > > > > > >> > > >
>> > > > > > >> > > > Thanks,
>> > > > > > >> > > > Greg
>> > > > > > >> > > >
>> > > > > > >> > > > On Wed, Mar 27, 2024 at 4:43 PM Christopher Shannon
>> > > > > > >> > > > <christopher.l.shan...@gmail.com> wrote:
>> > > > > > >> > > > >
>> > > > > > >> > > > > Hi,
>> > > > > > >> > > > >
>> > > > > > >> > > > > I'm proposing a KIP for Kafka 4.0 to upgrade to to
>> > Jakarta
>> > > > and
>> > > > > > >> JavaEE 9
>> > > > > > >> > > > > APIs. This will also upgrade dependencies like Jetty
>> and
>> > > > move
>> > > > > > >> away from
>> > > > > > >> > > > > the depcrated javax namespace to be in line with
>> other
>> > > > > libraries
>> > > > > > >> and
>> > > > > > >> > > > > frameworks. There was some initial
>> > > > > > >> > > > > <
>> > > > > >
>> https://lists.apache.org/thread/p4qbqh8r77h4khn3yoof2b0gbq3wbc5q
>> > > > > > >> >
>> > > > > > >> > > > > discussion and below is the KIP.
>> > > > > > >> > > > >
>> > > > > > >> > > > > Please take a look and let me know what you think:
>> > > > > > >> > > > >
>> > > > > > >> > > > >
>> > > > > > >> > >
>> > > > > > >>
>> > > > > >
>> > > > >
>> > > >
>> > >
>> >
>> https://cwiki.apache.org/confluence/display/KAFKA/KIP-1032%3A+Upgrade+to+Jakarta+and+JavaEE+9+in+Kafka+4.0
>> > > > > > >> > > > >
>> > > > > > >> > > > > Thanks,
>> > > > > > >> > > > > Chris
>> > > > > > >> > >
>> > > > > > >>
>> > > > > > >
>> > > > > >
>> > > > >
>> > > >
>> > >
>> >
>>
>

Reply via email to