Hello, everyone!

I first proposed trying to find some way to have the same sources
generating both javax and jakarta versions of the Tapestry
projects/artifacts/JARs that actually use them (don't forget about
Tapestry-IoC, Plastic, Commons, tapestry-json, etc, which wouldn't be
touched, since they don't have Servlet API dependencies and we should
avoid creating new artifacts for them). If we can find a way of doing
that, that's the ideal solution. I was thinking about how we could do
it and I reached a dead end, not finding a good solution for
implementing that. If the very talented Tapestry team manages to do
it, I'll be very happy to be proven wrong. :) Of course, anything I
can help, I'll do it, also very happily.

Thanks Volker for starting the work on this!

On Tue, Apr 11, 2023 at 5:07 PM Volker Lamp <vl...@apache.org> wrote:
>
> Hi David
>
> > A gradle plugin is not a bad idea and would be relatively
> > straightforward to implement. We have developed many gradle plugins over
> > the years and are open to contributing to that effort.
>
> Excellent. Help is always welcome.
>
> > The simplest approach might be to create a task that filters the source
> > tree in place as a separate gradle step. If the sources are updated in
> > place, a cleanup mechanism will be needed to restore the working copy to
> > its unmodified state between builds. Internally we use the Team City
> > swabra plugin to accomplish that goal.
>
> I agree. A temporary copy of the sources should be created, leaving the 
> original sources untouched. The copy mechanism would replace the 'javax' 
> package names with their 'jakarta' equivalents. The target directory of that 
> operation would either be somewhere within the build directory (so that it 
> would be captured by the regular 'clean' task) or in a separate source 
> directory, next to 'src' (in which case the clean task would have to be 
> extended to capture that directory).
>
> As far as the Gradle build script is concerned, we could take the same 
> approach, i.e. creating a copy of build.gradle with the dependencies replaced 
> accordingly, and subsequently triggering another build (not sure if there is 
> a way in Gradle to invoke another gradle build from within a build?) 
> Alternatively, we'd have to enhance the existing build.gradle with logic for 
> the jakarta-ee-9 compatible sources. If we do the latter it is probably a 
> good idea to leverage some of the newer Gradle DSL features in order to break 
> up the build logic in smaller bites that would be easier to digest.
>
> As far as collaboration is concerned, I've just created a branch named 
> TAP5-2741. Feel free to issue pull requests against it.
>
> Thank you,
>
> Volker
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@tapestry.apache.org
> For additional commands, e-mail: dev-h...@tapestry.apache.org
>


-- 
Thiago

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tapestry.apache.org
For additional commands, e-mail: dev-h...@tapestry.apache.org

Reply via email to