> ## Documentation Index
> Fetch the complete documentation index at: https://docs.activeviam.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Atoti Server & Java API available versions

> General availability and end of support dates for all released minor versions of Atoti Server and the Java API.

export const versions = [{
  version: "6.1",
  docsUrl: "/engine/java-sdk/6.1/intro/overview/",
  releaseNotesUrl: "/engine/java-sdk/6.1/release/whats_new",
  gaDate: "Sep 06, 2024",
  eosDate: null
}, {
  version: "6.0",
  docsUrl: "https://docs.activeviam.com/products/atoti/server/6.0/docs/intro/overview/",
  docsUrl2: "https://docs.activeviam.com/products/atoti/server/6.0-sb3/docs/intro/overview/",
  releaseNotesUrl: "https://docs.activeviam.com/products/atoti/server/6.0/docs/release/changelog/",
  releaseNotesUrl2: "https://docs.activeviam.com/products/atoti/server/6.0-sb3/docs/release/changelog/",
  gaDate: "Nov 08, 2022",
  eosDate: "Sep 05, 2026"
}];

export const eosBg = dateStr => {
  const dark = typeof document !== "undefined" && document.documentElement.classList.contains("dark");
  if (!dateStr) return dark ? {
    color: "white"
  } : {};
  const d = new Date(dateStr);
  const now = new Date();
  const soon = new Date(now);
  soon.setMonth(now.getMonth() + 6);
  if (d < now) return {
    backgroundColor: dark ? "rgba(239, 68, 68, 0.3)" : "rgba(254, 202, 202, 0.7)",
    color: dark ? "white" : undefined
  };
  if (d <= soon) return {
    backgroundColor: dark ? "rgba(234, 179, 8, 0.35)" : "rgba(254, 240, 138, 0.9)",
    color: dark ? "white" : undefined
  };
  return dark ? {
    color: "white"
  } : {};
};

export const isDark = () => typeof document !== "undefined" && document.documentElement.classList.contains("dark");
export const soonBg = () => isDark() ? "rgba(234, 179, 8, 0.35)" : "rgba(254, 240, 138, 0.9)";
export const expiredBg = () => isDark() ? "rgba(239, 68, 68, 0.3)" : "rgba(254, 202, 202, 0.7)";
export const swatchBorder = () => isDark() ? "1px solid rgba(255,255,255,0.15)" : "1px solid rgba(0,0,0,0.2)";

Extend and customize Atoti using Java.

<table>
  <thead>
    <tr>
      <th>Version</th>
      <th>Release notes</th>
      <th>GA date</th>
      <th>EOS date</th>
    </tr>
  </thead>

  <tbody>
    {versions.map(v => (
            <tr key={v.version} style={eosBg(v.eosDate)}>
              <td>
                {v.docsUrl ? <a href={v.docsUrl}>{v.version}</a> : v.version}
                {v.docsUrl2 ? <>{" / "}<a href={v.docsUrl2}>SB3</a></> : null}
              </td>
              <td>
                {v.releaseNotesUrl ? <a href={v.releaseNotesUrl}>Release notes</a> : "—"}
                {v.releaseNotesUrl2 ? <>{" / "}<a href={v.releaseNotesUrl2}>SB3</a></> : null}
              </td>
              <td>{v.gaDate}</td>
              <td>{v.eosDate ?? ""}</td>
            </tr>
          ))}
  </tbody>
</table>

<div style={{display: "flex", gap: "20px", marginTop: "12px", fontSize: "0.85rem", flexWrap: "wrap"}}>
  <div style={{display: "flex", alignItems: "center", gap: "6px"}}>
    <span style={{display: "inline-block", width: "14px", height: "14px", backgroundColor: soonBg(), border: swatchBorder(), borderRadius: "2px", flexShrink: 0}} /> EOS within 6 months
  </div>

  <div style={{display: "flex", alignItems: "center", gap: "6px"}}>
    <span style={{display: "inline-block", width: "14px", height: "14px", backgroundColor: expiredBg(), border: swatchBorder(), borderRadius: "2px", flexShrink: 0}} /> No longer supported
  </div>

  <div style={{display: "flex", alignItems: "center", gap: "6px", color: "gray"}}>
    No background — EOS date not yet set
  </div>
</div>
