Hi guys, A quick update and a request for help and opinions about my progress.
So I got working what I thought was a good approach: a Gradle convention plugin that copies the Java sources whilst replacing the 'javax' imports with 'jakarta'. Making use of with 'features' and 'capabilities' I got it to compile nicely. So far so good. What I'm stuck with now are missing method implementations. Tapestry's code base ist against servlet-api 3.0.1, but the jakarta namespace doesn't appear before jakarta.servlet-api:5.0.0. Here is an example. Tapestry's BufferedGZipOutputStream class extends jakarta.servlet.ServletOutputStream which has a setWriteListener(jakarta.servlet.WriteListener) method (introduced in servlet-api 3.1, by the way). For this particular case, identified by a compile error, I guess I could add an implementation of that method by calling sed or a similar tool. And that code would be in build.gradle which is clumsy especially if the implementation is more than a few lines of code. And then I would repeat the same thing for all abstract methods that were added since servlet-api 3.0.1? Probably not. Unless somebody else has a better idea, my preference for the way ahead would be to switch to Jakarta EE 9 and some point rather than running in parallel. As this would break backward compatibility, we would have to think about how than can be communicated in the best way, including the possibility of calling it Tapestry 6? I would also be ok with sticking with Tapestry 5 even though it's a breaking change. We've done it before, and even though it is inconvenient for users it also provides benefit for users. Keen to hear your thoughts. Thanks, Volker --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tapestry.apache.org For additional commands, e-mail: dev-h...@tapestry.apache.org