----- Original Message ----- > From: "Jochen Theodorou" <blackd...@gmx.org> > To: "MG" <mg...@arscreat.com>, "dev" <dev@groovy.apache.org> > Sent: Monday, December 23, 2024 10:39:55 AM > Subject: Re: Replacing javax.* with jakarta.*
> On 21.12.24 16:43, MG wrote: >> Hi Jochen, >> >> 1. that sounds like a good idea, but I am just wondering if ppl who are >> in this situation might not potentially have other (Java) libraries >> in use, for which they would need to do the renaming of the class >> references also. > > In my last project I was using Spring with jakarta namespace, and > several and yes, that impacted several other choices I made in > libraries. But usually there jakarta was either the only choice or they > offered both. > >> 2. So maybe having a chapter in the Groovy documentation which explains >> how to do this so it plays well with Groovy might be the more >> generally applicable & easier to do option ? >> 1. (Note: "plays well with Groovy" might not be an issue here, but >> I am just thinking back to the pains of Minecraft obfuscation >> not working with Groovy generated bytecode) > > The problem with obfuscation is actually the obfuscation of the MOP > relevant methods and the obfuscation of extension methods, that are part > of the Groovy runtime. > > But a chapter about how to change the class names is not going to be > easy to understand. Imagine a gradle dependency groovy-servlet:javax and > you need it as jakarta. Then you would have to transform the dependency > after gradle added it. Possible, but painful. And with maven I do not > know how you would do that. I think it's easier to have the dependency to use "jakarta.*" by default and use "javax" as classifier if you want the "javax.*" dependencies. For me, i think it's easier to add a post step after creating the jar to rewrite it to use "javax" with the shade plugin and add the classfier "javax" and publish both artefacts. > > bye Jochen Rémi