⚠ This page is served via a proxy. Original site: https://github.com
This service does not collect credentials or authentication data.
Skip to content

Conversation

@wezell
Copy link
Contributor

@wezell wezell commented Jan 9, 2026

Actually move us to Java 25.

Second pr which actually moves us to Java 25. Do not merge this until we get PR #34264 merged and then these changes re-merged with main with the part1 changes.

This PR should remain in a draft state until we are ready to roll out Java 25.

ref: #33865

…e this until we get PR #34264 merged and then these changes re-merged with main with the part1 changes.

ref: #33865
@github-actions github-actions bot mentioned this pull request Jan 9, 2026
3 tasks
@wezell wezell changed the title task(java): Second pr which actually moves us to Java 25. Do not merge this until we get PR #34264 merged and then these changes re-merged with main with the part1 changes. Move to java 25 part II Jan 9, 2026
…e this until we get PR #34264 merged and then these changes re-merged with main with the part1 changes.

ref: #33865
@wezell wezell marked this pull request as draft January 9, 2026 17:53
wezell and others added 6 commits January 16, 2026 16:22
## Overview

Smoke tested Java 25.0.1+8-LTS (Microsoft OpenJDK) against dotCMS core.
All tests passed with one critical OpenSearch compatibility finding
documented.

**Issue**: #34564 (Java 25 dotCMS image for smoke testing)  
**Target Branch**: `issue-33865-java-25-part2` (Java 25 Part 2)  
**Related**: #34572 (Java 25 warnings tracking - non-blocking)

<img width="4160" height="1768" alt="Image"
src="https://github.com/user-attachments/assets/7baa8159-d1f7-4ee0-9872-139a2beeaa99"
/>

---

## Manual local testing I did

### Passed Tests (5/10 Acceptance Criteria)
1. ✅ **Build Configuration** - Maven build successful (2:24 min)
2. ✅ **Dependencies Compatibility** - All resolved, Glowroot
0.14.5-beta.3-java25
3. ✅ **Container Startup & Runtime** - Successful (17.2s startup time)
4. ✅ **Core Functionality** - Manual smoke test PASSED (all features
working)
5. ✅ **Documentation** - Findings documented in JAVA25_SMOKE_TEST.md
6. **A good chunk of Postman REST API Tests** - Running locally (40+
min, mostly passing)

### Deferred to CI/CD
- **Integration Tests** - Pipeline will run full test suite with proper
orchestration
- **Performance Baseline** - Separate performance testing
- **Cross-Platform Compatibility** - Multi-platform builds in release
automation
- **Full postman test suite** - cuz why wait twice if local doesn't
count anyways 🤷

---

### Reminder on OpenSearch Compatibility

> [!NOTE]  
> Remember there is OpenSearch upgrade work going on right now in Scout

**Use OpenSearch 1.3.x** (matches current AWS production):
- ✅ Tested with: `opensearchproject/opensearch:1.3.19`
- ✅ AWS Production: `OpenSearch_1_3_R20251106-P1`
- ✅ All indexing operations work correctly
- ✅ Publishing works without errors

---

## ⚠️ Java 25 Warnings (Non-Blocking) 

All warnings tracked in issue #34572:

1. **ZGenerational GC Removed** (Breaking Change):
- Warning: `Ignoring option ZGenerational; support was removed in 24.0`
- Action: Remove `-XX:+ZGenerational` from JVM configuration (tracked in
#34572)

2. **sun.misc.Unsafe Deprecations** (Low Impact):
   - Used by third-party libraries (Disruptor 3.3.4 via Log4j2)
   - Functionality works correctly

3. **Restricted Methods** (Informational):
   - Suggestion: `--enable-native-access=ALL-UNNAMED`
   - Not blocking for runtime

---

## 📊 Test Environment

```
Java:       OpenJDK 25.0.1+8-LTS (Microsoft)
OpenSearch: 1.3.19 (production-compatible)
PostgreSQL: 16
Platform:   macOS Apple Silicon (Darwin 25.2.0)
Image:      local/dotcms:java25 (969MB)
```

---

## 📝 Documentation

All findings documented in **JAVA25_SMOKE_TEST.md**:

> [!WARNING]  
> that file is probably AI Slop that we should pull out before merging
to main, but is worth it while this is a testing branch

---------

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
Co-authored-by: Steve Freudenthaler <sfreudenthaler@users.noreply.github.com>
Co-authored-by: Will Ezell <will@dotcms.com>
@sfreudenthaler sfreudenthaler linked an issue Feb 10, 2026 that may be closed by this pull request
7 tasks
Update from 25.0.1-ms to 25.0.2-ms for latest patch release:
- .sdkmanrc: Updated java version
- docker/java-base/Dockerfile: Updated SDKMAN_JAVA_VERSION ARG
- JAVA25_PROBLEMS_AND_SOLUTIONS.md: Updated all version references

Ref: #34564
Remove JAVA25_HANDOFF.md and JAVA25_UPGRADE_INVENTORY.md as these were
internal planning documents not needed for external consumption.

Ref: #34564
Removed Problem 1 (Maven Extensions/Network Restrictions) as this was
an artifact from Docker AI agent sandbox testing and not a real Java 25
upgrade issue.

Changes:
- Deleted entire Problem 1 section
- Renumbered remaining problems (2→1, 3→2, 4→3, 5→4, 6→5)
- Updated problem counts (6→5 problems, 3→2 resolved)
- Removed all network restriction references
- Updated lessons learned and best practices
- Fixed Quick Reference section

Ref: #34564
@sfreudenthaler
Copy link
Member

sfreudenthaler commented Feb 10, 2026

ahh yeah build failed cuz base is missing. I need to manually trigger that pipeline

https://github.com/dotCMS/core/actions/runs/21886264415

@sfreudenthaler
Copy link
Member

sfreudenthaler commented Feb 11, 2026

build and test was clean. Running the one-off testing container build and push

gh workflow run "Build/Push dotCMS docker image" \
     --ref issue-33865-java-25-part2 \
     -f custom_tag=java25-testing \
     -f docker_registry=DOCKER.IO \
     -f multi_arch=true

https://github.com/dotCMS/core/actions/runs/21890007686

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

[feat] Java 25 dotCMS image for smoke testing

2 participants