All notable changes to this project are documented here.
This project uses simple release notes rather than a strict changelog taxonomy. The repository is educational, so each release entry focuses on learning value, documentation coverage, and validation status.
- Improved teaching clarity across Java 9 through Java 25 examples, notes, tests, and feature documentation.
- Added explanatory learning modules for substantial notes-only topics such as the Java 9 module system, Java 15 hidden classes, and Java 16 Unix-domain socket channels.
- Improved Java 23 learning material with clearer preview bridge notes, Markdown documentation comments guidance, and explanatory modules for unsafe memory-access deprecation and ZGC generational mode.
- Improved Java 24 learning material with clearer Stream Gatherers and Class-File API explanations, explanatory modules for virtual-thread synchronization and AOT class loading, and stronger preview bridge notes to Java 25.
- Clarified practical demo documentation so it matches the focused
make demosvalidation target. - Expanded glossary coverage for recurring Java platform acronyms and terms.
make docs-auditmake docs-checkmake demosmvn -B clean test -q
Patch release focused on the Java 21 virtual-thread naming example.
- Reused one configured virtual-thread builder so the Java 21 example demonstrates incrementing thread names.
- Strengthened the virtual-thread naming test to verify
worker-1,worker-2, andworker-3directly.
make release-check
Patch release focused on glossary and acronym clarity for learners.
- Expanded glossary coverage for recurring acronyms used across documentation.
- Made first-use acronym definitions explicit in cryptography feature READMEs.
- Added glossary links from deep feature documentation for KEM, ML-KEM, ML-DSA, HKDF, HMAC, AES, KDF, JEP, and JDK context.
make release-check
Patch release focused on JavaDoc and documentation navigation clarity.
- Removed duplicate notes classes for features that now have dedicated executable example packages.
- Removed matching redundant notes tests.
- Updated demo commands, feature maps, status matrix, learning path, migration guide, and version READMEs to point directly to executable examples.
make release-check
Second public release of java-evolution, focused on turning several notes-only topics into executable, learner-friendly examples and improving cross-platform validation.
- Executable Key Encapsulation Mechanism example for Java 21.
- Executable Foreign Function and Memory API example for Java 22.
- Executable Class-File API example for Java 24.
- Executable ML-KEM and ML-DSA examples for Java 24.
- Executable HKDF key derivation example for Java 25.
- Java 18 JavaDoc
@snippetexamples. - Java 18 Simple Web Server example.
- Practical demo guide and
make demostarget for focused walkthroughs. - Glossary documentation, including Java Platform Module System (JPMS) search terms.
- Java 25 guardrail for Make targets.
- Java 25 helper scripts for macOS, Linux, Windows Git Bash, and Windows PowerShell.
- README platform support note for macOS, Windows 11, and Linux.
- Improved release automation with
make docs-checkandmake release-check. - Aligned build workflow with the local
make checkbehavior. - Improved documentation and tests after code, documentation, and test reviews.
- Clarified Foreign Function and Memory API
invokeExactcast requirements. - Renamed and organized release documentation under
docs/release/. - Improved Pattern Matching for switch discoverability.
make release-check- macOS validation with JDK 25 and Maven.
- Windows 11 validation with JDK 25, Maven, PowerShell helper, Git Bash helper, and Make.
- Linux validation with JDK 25 helper flow.
Initial public release of java-evolution.
- Java release packages from Java 8 through Java 25.
- Focused example classes for language and API features that can be demonstrated cleanly with JDK 25-compatible source code.
- Notes classes for preview, incubator, runtime, tooling, cryptography, source-launcher, JVM, GC, and platform features that are not a good fit for tiny portable JUnit examples.
- JUnit 5 tests used as executable documentation.
- Version README files explaining the problem each feature solved.
- JavaDoc generation with
make docs. - GitHub Pages workflow for publishing generated JavaDoc.
- Build workflow for compiling and testing with JDK 25.
- Markdown links workflow.
- Documentation navigation audit with
make docs-audit. - Study, learning path, interview, demo, migration, feature map, status matrix, JEP index, contribution, security, and release process documentation.
make docs-auditmake docsmake check
- The Java 11 HTTP Client test can be skipped in restricted environments when a local HTTP server cannot bind to a loopback port. The skip is intentional and guarded so the suite remains portable.