Giter Site home page Giter Site logo

Shall we start a 4.0 branch? about jersey HOT 8 CLOSED

arjantijms avatar arjantijms commented on August 17, 2024
Shall we start a 4.0 branch?

from jersey.

Comments (8)

arjantijms avatar arjantijms commented on August 17, 2024 1

Is there any rush for the 4.0 branch?

Yes, without very extensive patching we can't build GlassFish. Jersey depends on Jakarta Annotations 2.1 among others, while for the Jakarta EE 11 M1 release Jakarta Annotations 3.0 is used. Since this is a major version update, OSGi (Felix) kills the server when encountering this.

Also, final review for Jakarta EE 11 is at 30 January 2024, so at least starting with a 4.0 branch to show progress would be good.

from jersey.

jansupol avatar jansupol commented on August 17, 2024

We are not there, yet.

The 4.0 branch is planned to come from 3.2 branch (currently the JPMS branch) we are working on.

Is there any rush for the 4.0 branch? We do not have the Jakarta REST API, yet

from jersey.

arjantijms avatar arjantijms commented on August 17, 2024

Specifically org.glassfish.jersey.ext.cdi1x.internal.CdiComponentProvider is problematic, as it uses ManagedBean which has been removed from the Annotations API, so the code will crash no matter what (even without OSGi).

We can always up-sync a 4.0 branch whenever 3.1-JMPS is done? I can branch 4.0 from 3.1-JMPS, update the dependencies, remove the ManagedBean references, and stage a 4.0-alpha1 or maybe even 4.0-gf-alpha1 if that is less intrusive.

Or maybe, to be even less intrusive, a 4.0-gf branch?

from jersey.

arjantijms avatar arjantijms commented on August 17, 2024

We do not have the Jakarta REST API, yet

We actually do have it. See https://jakarta.oss.sonatype.org/content/repositories/staging/jakarta/ws/rs/jakarta.ws.rs-api/4.0.0-M1/

from jersey.

jansupol avatar jansupol commented on August 17, 2024

Having the Jakarta REST 4.0.0 M1 is actually even a bigger issue. As you well know, the API comes with big changes, the @Context is no longer there and every entity method requires a new @Body annotation for the entity.

Glassfish contains some REST API methods, for instance, in the console, all of them would be required to be changed. So the question is what is the plan for Glassfish? Will it create M1 release with old Jakarta REST API and all newer, with Jersey that understands those new APIs, or will Glassfish also include the new REST API that would require a bigger change in Jersey injection, too?

from jersey.

arjantijms avatar arjantijms commented on August 17, 2024

So the question is what is the plan for Glassfish?

For 8-M1 I'm trying to incorporate as many components with the bar just set to "it compiles" and "it starts". This somewhat aligns with the goals for the Jakarta EE 11 M1 release.

Even without Jakarta REST 4.0.0 M1, Jersey can try to set the compilation target to JDK 17, or even JDK 21 already and try to pass all tests. You can also already incorporate all, or a selection, of the M1 versions of the other APIs. Especially Jakarta Annotations is a relatively simple target (you basically need to remove @ManagedBean).

Incidentally, I saw RestEASY has already started their branch as well, and are doing things like the above in that branch.

from jersey.

jansupol avatar jansupol commented on August 17, 2024

Jersey already builds on JDK 17 & 21.

Will start working on 4.x later this week. We need to finish the Christmas release first and split from there.

from jersey.

jansupol avatar jansupol commented on August 17, 2024

4.0 branch created.

from jersey.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.