Java Time Machine: Journey Through Java Versions & Features

~
~
Published on
Authors
minimal-java-versions-and-features-banner

Java Versions & Features

Keeping up with Java’s rapid release cadence—and the avalanche of new features that come with each version—can feel like trying to drink from a firehose. From incubator modules to preview language enhancements to final, production‑ready APIs, there’s a lot to track and a lot of information to go through.

In the series of blog posts I'm currently writing. I found myself struggling to sift through OpenJDK's documentation, of which features were actually released in a java version or which ones where in preview or incubation phase.

That was why i thought rather let me create a small tool to help me...

Java Versions & Features, a lightweight React application that visualizes every major Java release in an interactive, theme‑aware timeline.

Why a Timeline?

Java’s six‑month release cycle means new capabilities land faster than ever. While long‑term support (LTS) versions like 8, 11, 17, & 21 are usually the prime focus, preview and incubator features introduce powerful functionality early in the ecosystem:

  • Incubator: Early‑stage, experimental features (e.g., the Vector API) that invite community feedback.
  • Preview: Language or platform capabilities (e.g., pattern matching) available in a preview state before finalization.
  • Final: Fully released features you can rely on in production.

Plotting these phases along a timeline helps you see when and how each feature evolved.

Key Features

Chronological Visualization

  • Built with react-vertical-timeline-component for a scroll‑driven, vertical layout.
  • Each Java release is rendered as a clickable node.
  • If an official release blog exists, a “Java X” button opens it in a new tab.

Feature Drill‑Down

  • Expand a release to view all associated features.
  • Click a feature to open the Time Machine modal, showing:
    • Phase: Incubator | Preview | Final
    • Release date
    • Description and links (JEPs, Javadoc, blog posts)

Flexible Filtering

  • Text Search: Filter features by name in real time.
  • Phase Toggles: Show or hide incubator, preview, and final features.
  • LTS‑Only Mode: Focus on the four long‑term support versions with a single switch.
  • Contextual empty‑state messages guide you when no filters match.

Light & Dark Themes

  • Toggle between themes—CSS variables (--color-primary, --color-accent, etc.) adjust backgrounds, typography, and icons.
  • Ensures accessibility and a consistent brand feel across modes.

Scroll‑to‑Top Convenience

  • A floating ⇧ button appears at the bottom of the page for quick navigation back to the top.

Tech Stack & Architecture

  • React (function components + hooks) for a composable, state‑driven UI.
  • react-vertical-timeline-component for an engaging, scrollable timeline layout.
  • Lucide Icons (ArrowUp for scroll-to-top) for lightweight SVG assets.
  • CSS Custom Properties for theming; global variables defined in :root and overridden in .theme-dark.
  • ESLint (flat config) + Prettier to enforce code quality and consistent styling.
  • Jest + React Testing Library to validate that core components render correctly.

Future Improvement ideas

  • add links if i write a blog post about a specific version or feature
  • add links to the JEPs (JDK Enhancement Proposal) for each feature
  • Search by JEP Number or Keyword Tags

Initially I thought of just having a static site but maybe i will add more dynamic improvements in.

View the App