I may have sent a note or two earlier on a big challenge for Jackson:
due to Oracle's actions, the whole J2EE API has been essentially
forked (at technical level), so that all APIs that are/were under
"javax." anything, will/are/maybe replicated with equivalent (but from
Java classloader perspective wholly unrelated.... :-o) APIs under
"jakarta." package/namespace.

Needless to say, this is fucking nightmare for everyone.

And it is not exactly fun for components that sit IN-BETWEEN users of
Java service interfaces and platforms that provide them (like Jersey,
RESTeasy, Servlet, CXF; or frameworks building on top of that like
DropWizard).

With Jackson 2.12 we attempted to post-process existing JAXB/JAX-RS
packages so that there'd be alternate jars that were shaded to refer
to Jakarta APIs, but published under Maven classifier of "jakarta".
While this could/might work, it seemed that there are fundamental
challenges in properly rewriting all necessary metadata, and it is
unclear if that could actually be achieved.
While others in the bigger Java community are working along this
route, I decided that for Jackson project, it is better to rip off the
band aid and use Good Old Forking approach and solve it with bit of
duplication.

So, with Jackson 2.13 we now have TWO Java Xml Binding annotation
introspection packages (both under "jackson-modules-base" --
https://github.com/FasterXML/jackson-modules-base -- repo);

1. Existing JAXB introspector -- `jackson-module-jaxb-annotations`
(see https://github.com/FasterXML/jackson-modules-base/tree/master/jaxb)
2. New Jakarta XmlBind introspector --
`jackson-module-jakarta-xmlbind-annotations`
(https://github.com/FasterXML/jackson-modules-base/tree/master/jakarta-xmlbind)

Depending on which XML Bind annotations you expect to use, select the
proper package and introspector: class names are different to make it
easier to detect possible issues.
Note that you also CAN use BOTH using "AnnotationIntrospectorPair"
approach just as it is used with Jackson native annotations + JAXB!
(or all THREE if you really want to support Any & All...)

Similarly, there are TWO SETS of Java REST Web Service providers:

1. Existing JAX-RS set via: https://github.com/FasterXML/jackson-jaxrs-providers
2. NEW "Jakarta-RS" set from
https://github.com/FasterXML/jackson-jakarta-rs-providers

Similar to XML Bind annotations, you (or your platform provider, more
likely) will need to select the choice that works for you.
As far as I understand, right now Jersey may be the only provider that
fully supports Jakarta-RS, but others (RESTeasy, Restlet, CXF) are
working along solutions.

Ok, so, that was a long explanation of this detour. But I mentioned
something about .... help?

Since I do not currently have a Jakarta-RS enabled platform to use (as
in, my day job is strictly based on old JAX-RS for the time being), I
don't have a good way to test out whether what I have created actually
works for real use.
It is also possible that some work would be needed on framework side,
too, for "alternate" Jackson provider.

But I would very much like to figure it out: writing something that is
supposed to work, but doesn't, is worse than writing nothing (and more
so for publishing).

So... anyone who would like to try out new providers (esp. JSON of
course) with, say, Jersey 3(.0.2)?
Or equally usefully, knows (or is...) a member of dev community for
one of other JAX-RS implementations, and would be interested in
figuring out the upgrade path?

And beyond direct validation / integration path, any other help would
be greatly appreciated as well!

-+ Tatu +-

ps. This issue is quickly becoming the main deliverable for Jackson
2.13 release, if anyone is curious about why there is this new focus
on this particular change.

-- 
You received this message because you are subscribed to the Google Groups 
"jackson-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jackson-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jackson-dev/CAL4a10hJAUzXmdb8%2B1JODKVnoEBf5rsSYzipscS45L_J%2Bcu81w%40mail.gmail.com.

Reply via email to