Skip to content

Migrate batch-launch to Jakarta / Tomcat 10 (XNAT 1.11) - #2

Draft
dmaffitt wants to merge 1 commit into
developfrom
feature/tomcat10
Draft

dmaffitt wants to merge 1 commit into
developfrom
feature/tomcat10

Conversation

@dmaffitt

Copy link
Copy Markdown

Summary

Ports the batch-launch plugin to the Jakarta EE / Tomcat 10.1 stack introduced by XNAT 1.11, building against 1.11.0-SNAPSHOT.

  • Migrate batch-launch plugin to XNAT 1.11.0 (jakarta / Tomcat 10)

5 files changed, 59 insertions(+), 44 deletions(-) — java:4 gradle:1

Work unit affected

batch-launch plugin

Jira ticket

N/A — part of the XNAT 1.11 Jakarta / Tomcat 10 cutover.

How this maps to the core cutover review guide

Bucketed with the same script the core review guide publishes in its Appendix A (-w; import-only vs ≤8-line trivial vs substantial), refined so comment-only non-import changes count as mechanical. Run against origin/develop:

Bucket This PR Core cutover
Import-only / mechanical 1 25% 342 53%
Trivial (<=8 real lines) 3 75% 183 28%
Substantial 0 0% 124 19%

4 .java files. Percentages are of each column's own total, so the shape is comparable to the 649-file core cutover.

Mechanical rules — which of core's §3 rules apply here

Core §3 rule Added lines here Core cutover
javax.servlet -> jakarta.servlet 1 267
org.restlet.* 1.1 -> 2.6 1 513
RunData -> PipelineData 6 481

Rules scoring zero here are absent from this plugin, not skipped.

Judgment calls, against core's §4

  • §4.7 · RunData -> PipelineData (6 lines) -- the silent-failure rule. The rest is the build file and three trivial files.

Test results

Plugin jar builds clean from this branch (run 2026-09-14): ./gradlew xnatPluginJar -> batch-launch-0.9.0-SNAPSHOT-xpl.jar.

No test suite was run for this plugin — it has no meaningful unit-test surface exercised here, and the integration verification for the whole set was done by deploying to the Docker 1.11 stack rather than per-repo. Treat the build as the evidence this PR carries.

Notes for review

  • Targets develop. The branch was cut from develop and is level with it (0 behind).

  • Depends on XNAT 1.11.0-SNAPSHOT, which is unreleased but now published. Either source works:

    Resolve from JFrog (no local build needed). A 1.11.0-SNAPSHOT build was published to libs-snapshot-local on 2026-09-10 (1.11.0-20260910.185426-1), including the org.nrg:parent BOM and the xnat-data-builder Gradle plugin. If this plugin's build.gradle already lists https://nrgxnat.jfrog.io/nrgxnat/libs-snapshot, it resolves as-is.

    Or build core locally, if you are also changing core or need a cutover commit newer than the published snapshot:

    git clone https://github.com/NrgXnat/xnat.git
    cd xnat && git checkout feature/jakarta-cutover
    ./gradlew publishToMavenLocal

    mavenLocal() is listed first in most plugin builds, so a stale local publish silently wins over JFrog under an identical version string. rm -rf ~/.m2/repository/org/nrg when switching to the JFrog route.

  • Opened as a draft with no reviewer requested — reviewers to be added when it is marked ready.

🤖 Generated with Claude Code

https://claude.ai/code/session_01KxtKswYPXUQ9zVRDaZcCB4

Applies the jakarta / Tomcat 10 / Turbine 7 / Restlet 2.6 / Spring 6 migration on
top of the GitHub monorepo/CI structure (branched off origin/develop = 9493aba,
still javax at vXnat 1.10.1-SNAPSHOT, artifact "batch-launch"), rather than the
old Bitbucket gh/main (0.9.0) lineage. The monorepo commit didn't touch src, so
the migrated source applied cleanly.

Source (4 files): Turbine 7 RunData -> PipelineData in the action/screens;
org.apache.commons.lang.StringUtils -> org.apache.commons.lang3.

build.gradle (kept gh/develop's monorepo shape — xnatPluginJar, CI publishing,
gitManifestAttrs): vXnat -> 1.11.0-SNAPSHOT; scoped mavenLocal; Java toolchain(21)
+ compile fork=true (Lombok 1.18.34 on JDK 21); `configurations.all { exclude }`
-> `configureEach` (Gradle 9 forbids post-resolution exclude mutation); XNAT-
provided deps -> compileOnly; turbine:turbine -> org.apache.turbine:turbine and
velocity -> velocity-engine-core; springfox (dead on Spring 6) ->
io.swagger:swagger-annotations; javax.servlet -> jakarta.servlet; commons-lang 2.6
-> commons-lang3; container-service 3.2.0:fat -> 3.9.0-SNAPSHOT:fat.

Verified: clean xnatPluginJar builds batch-launch-0.9.0-SNAPSHOT-xpl.jar.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant