Skip to content

Update the documentation: latest Maven Site Plugin, Sentry Maven Skin 8 with all its features, and a full documentation set (as done in winrm-java) #113

Description

@bertysentry

Goal

Bring the project documentation (https://metricshub.org/ipmi-java) up to the same standard as winrm-java: latest Maven Site Plugin, latest Sentry Maven Skin with all its features enabled, and a real documentation set instead of the single "Getting Started" page.

Current state

  • src/site/site.xml is still the old <project> descriptor (no XML namespace, ISO-8859-1), skin sentry-maven-skin 6.4.01, banner image only, two menu entries (Getting Started, Javadoc) and <menu ref="reports"/>.
  • src/site/markdown/index.md is the only page: a Maven dependency snippet and one Java example.
  • maven-site-plugin 3.12.1 and maven-skin-tools 1.3.00 are inherited from oss-parent 4. This combination is fragile: the CI site build on Don't abort the SDR repository walk on OEM or undecodable records #112 failed once with AbstractMethodError … org.apache.velocity.tools.ToolContext … Context.remove(Object) while the skin rendered index.md (mixed velocity-engine-core 2.3/2.4 + velocity-tools-generic 3.1 on the plugin classpath), and passed on re-run.
  • Unlike winrm-java the Javadoc is not in the reports menu wiring, there is no surefire report, no llms.txt, no search, no dark mode.

What winrm-java did (reference)

pom.xml (link):

  • parent org.metricshub:oss-parent:5;
  • maven-site-plugin 4.0.0-M16 pinned in <build><plugins> with the dependency org.sentrysoftware.maven:maven-skin-tools 1.8.01 (latest, 2026-07-21), because the version inherited from oss-parent is too old for the Doxia 2.0 report plugins and raises a project-info-reports LinkageError;
  • project.reporting.outputEncoding=UTF-8 (spotbugs-maven-plugin 4.10.4 needs it when rendering its report during mvn verify site);
  • project.build.outputTimestamp drives the site copyright year and the "Documentation as of" date (bumped at release);
  • <reporting> declares/pins maven-project-info-reports-plugin 3.9.0 (ci-management, dependencies, dependency-info, distribution-management, issue-management, licenses, plugins, scm, summary, team), maven-jxr-plugin 3.6.0, maven-javadoc-plugin (javadoc report, published at apidocs/), maven-surefire-report-plugin 3.6.0, spotbugs-maven-plugin 4.10.4.1 and maven-pmd-plugin 3.28.0 at the same versions as the build gates, so the reports menu is fully populated and shows what the gates checked.

src/site/site.xml (link):

  • <site xmlns="http://maven.apache.org/SITE/2.0.0"> descriptor, skin sentry-maven-skin 8.0.00 (8.0.01 was released 2026-10-06);
  • <custom>: noDefaultLinks, keywords, <social> (GitHub link with Font Awesome icon), <additionalLinks> (Issue Tracker, Licenses, Releases);
  • bannerLeft with the metricshub-logo-only.png image, top links (GitHub, Releases, Issue Tracker, MetricsHub);
  • three menus (Getting Started / Usage / Reference) plus <menu ref="reports"/>;
  • src/site/resources: css/site.css, favicon.ico, Poppins fonts, images/metricshub-logo-only.png.

Sentry Maven Skin 8 features to enable (see https://sentrysoftware.github.io/maven-skin/): responsive Bootstrap layout, dark mode with automatic detection and manual toggle, built-in full-text search (no external service), code highlighting for 290+ languages with copy-to-clipboard, print-ready CSS, automatic WebP image conversion, llms.txt generation for AI indexing, keywords/metadata, multilingual UI labels, and per-page settings (TOC, breadcrumbs, title).

Proposed documentation set for ipmi-java

Mirror the winrm-java structure with pages that match what this library actually does:

  • Getting Started: Overview (what the client collects: chassis status, FRUs, sensors; text output format consumed by MetricsHub), Installation (Maven coordinates, Java 8+), Preparing the BMC (user, privilege level, cipher suites 3/17, UDP 623, firewall).
  • Usage: Chassis status, FRU inventory, Sensors (readings, thresholds, states, the $deviceType;$deviceId;… output format of IpmiResultConverter), Configuration (IpmiClientConfiguration: credentials, BMC key, skipAuth, timeout vs. per-message timeout, keep-alive pingPeriod), Timeouts and transient errors (what happens on a lost UDP reply, retries, logging), Low-level API (IpmiConnector, IpmiAsyncConnector, state machine, custom commands), Serial-over-LAN (the core/api/sol package is undocumented).
  • Reference: Supported IPMI commands and cipher suites, OEM record handling, Troubleshooting (authentication failures, "Illegal connection state", 0xD4 insufficient privilege, ipmitool/ipmiutil equivalents), Migrating from the Verax library (package rename com.veraxsystems.vxipmi → org.metricshub.ipmi.core), Javadoc.
  • Reports menu: project info, Javadoc, JXR, surefire, Checkstyle, PMD, SpotBugs.

Acceptance

  • mvn verify site builds cleanly on JDK 17 in CI (the Velocity AbstractMethodError no longer occurs) and locally.
  • Site uses maven-site-plugin 4.x, maven-skin-tools 1.8.01+, sentry-maven-skin 8.0.01+, oss-parent 5 (or the pins above if the parent is not updated first).
  • Dark mode, search, copy-to-clipboard, llms.txt and the full reports menu are visible on https://metricshub.org/ipmi-java after the next deploy.yml run.
  • README "Project Documentation" and "Javadoc" links still resolve.

Related: #112 (site build flake), #101 (configuration options that the new Configuration page should document), #103 / #104 / #111 (future client features that will need pages).

Activity

  1. self-assigned this
    on Oct 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

documentationImprovements or additions to documentationenhancementNew feature or request

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions