Skip to content

feat: Retarget Ant build to JDK 21 (no code changes) - #1

Open
devin-ai-integration[bot] wants to merge 2 commits into
developfrom
devin/java21-foundation
Open

feat: Retarget Ant build to JDK 21 (no code changes)#1
devin-ai-integration[bot] wants to merge 2 commits into
developfrom
devin/java21-foundation

Conversation

@devin-ai-integration

@devin-ai-integration devin-ai-integration Bot commented May 26, 2026

Copy link
Copy Markdown

Note: Filling out this template is required. Any pull request that does not include enough information to be reviewed in a timely manner may be closed at the
maintainer's discretion.

Description of the Change

Retargets the fork's Ant/NetBeans/Travis build configuration from Java 11 to Java 21 LTS without changing production or test source code.

Changed files:

  • release-build.properties: worldwind.jdk=11worldwind.jdk=21
  • nbproject/project.properties: javac.source/javac.target 1121
  • .travis.yml: openjdk11openjdk21
  • release-build.xml: Javadoc standard API link updated from Java 8 HTTP docs to Java 21 HTTPS docs

Diff summary:

.travis.yml                  | 2 +-
nbproject/project.properties | 4 ++--
release-build.properties     | 2 +-
release-build.xml            | 2 +-
4 files changed, 5 insertions(+), 5 deletions(-)

Baseline metrics captured separately before changes on develop commit 2543c234349c76f4a290e318b49f071ac156d2a0 under JDK 11:

src java files: 1727
new Runnable(): 148
new ActionListener(): 185
new Callable(): 0
new MouseListener(): 2
new KeyListener(): 0
new ChangeListener(): 60
new PropertyChangeListener(): 44
new WindowListener(): 0
instanceof: 1303
@Deprecated: 131
new Integer(: 0
new Double(: 0
new Float(: 0
new Long(: 0
new Boolean(: 0

Build/test verification:

JDK 11 baseline: ant -f release-build.xml
Result: BUILD SUCCESSFUL
JUnit: files=49 tests=435 failures=0 errors=0 skipped=7

JDK 21 foundation: ant -f release-build.xml
Result: BUILD SUCCESSFUL
JUnit: files=49 tests=435 failures=0 errors=0 skipped=7

No source/test changes check:
git diff develop -- src/ test/ testFunctional/ | wc -l
0

Note: both JDK 11 and JDK 21 builds emit the existing external Javadoc warning for the JogAmp URL (https://jogamp.org/deployment/v2.4.0-rc-20200307/javadoc/package-list) but continue to BUILD SUCCESSFUL.

Rationale: Java 21 is the current LTS target and this foundation PR isolates build retargeting from source modernization. Keeping this PR free of source/test edits makes it a clean compatibility gate for follow-on package-scoped modernization PRs.

Devin session: https://app.devin.ai/sessions/36287b7c637242dba0a6a659737d5402

Why Should This Be In Core?

This establishes Java 21 as the build/test baseline for the fork while preserving the existing WorldWind Java API and implementation unchanged.

Benefits

  • Enables follow-on Java 21 modernization PRs to branch from a verified JDK 21 foundation.
  • Captures auditable Java 11 baseline counts before source modernization begins.
  • Confirms the unmodified source and tests pass under JDK 21 with the same JUnit result as JDK 11.

Potential Drawbacks

  • CI environments must provide OpenJDK 21.
  • Javadoc still depends on the pre-existing JogAmp external documentation URL, which currently emits a fetch warning but does not fail the release build.

Applicable Issues

N/A

Requested by: @jakexcosme


Devin Review

Status Commit
⚪ Not started

Run Devin Review

💡 Connect your GitHub account to enable automatic code reviews.

Open in Devin Review (Staging)

@devin-ai-integration

Copy link
Copy Markdown
Author
Original prompt from Jake

#``# Overview

Migrate COG-GTM/WorldWindJava from Java 11 to Java 21 LTS. This is a federal-grade, zero-breakage migration with atomic per-package PRs, full test verification before and after, and a rollup audit document. Use parallel child sessions to accelerate. All PRs target the fork's develop branch.

#``# PHASE 0: Pre-Migration Baseline (Sequential — MUST complete before anything else)

#``#``# Step 0.1: Capture Pre-Migration Baseline Metrics
Before ANY changes, on the develop branch with JDK 11:

`#` File count
find src -name "*.java" | wc -l
`#` Anonymous inner class counts
grep -rn "new Runnable()" --include="*.java" src/ | wc -l
grep -rn "new ActionListener()" --include="*.java" src/ | wc -l
grep -rn "new Callable()" --include="*.java" src/ | wc -l
grep -rn "new MouseListener()" --include="*.java" src/ | wc -l
grep -rn "new KeyListener()" --include="*.java" src/ | wc -l  
grep -rn "new ChangeListener()" --include="*.java" src/ | wc -l
grep -rn "new PropertyChangeListener()" --include="*.java" src/ | wc -l
grep -rn "new WindowListener()" --include="*.java" src/ | wc -l
`#` instanceof pattern-match candidates
grep -rn "instanceof " --include="*.java" src/ | wc -l
`#` Deprecated usage
grep -rn "`@`Deprecated" --include="*.java" src/ | wc -l
grep -rn "new Integer(" --include="*.java" src/ | wc -l
grep -rn "new Double(" --include="*.java" src/ | wc -l
grep -rn "new Float(" --include="*.java" src/ | wc -l
grep -rn "new Long(" --include="*.java" src/ | wc -l
grep -rn "new Boolean(" --include="*.java" src/ | wc -l

Save all counts to a file BASELINE-METRICS.txt at the repo root. This is your "before" snapshot.

#``#``# Step 0.2: Run the existing test suite under JDK 11

ant -f release-build.xml

Record pass/fail counts. This establishes that the test suite is green BEFORE migration.

#``# PHASE 1: Foundational JDK 21 Retarget PR (Sequential — Wave 0)

#``#``# Step 1.1: Create branch devin/java21-foundation
Make these changes ONLY (no code changes):

  1. **`release-... (12653 chars truncated...)

@devin-ai-integration

Copy link
Copy Markdown
Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR that start with 'DevinAI' or '@devin'.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

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