Skip to content

UNOMI-960: API Javadoc, manual docs, and validation tooling#821

Merged
sergehuber merged 19 commits into
masterfrom
UNOMI-960-javadoc-cleanup
Jul 12, 2026
Merged

UNOMI-960: API Javadoc, manual docs, and validation tooling#821
sergehuber merged 19 commits into
masterfrom
UNOMI-960-javadoc-cleanup

Conversation

@sergehuber

@sergehuber sergehuber commented Jul 12, 2026

Copy link
Copy Markdown
Contributor

Plain-language summary

Operators and developers had a hard time learning Unomi 3.1 from Javadoc and the user manual alone. Many public API comments were missing or unclear. The new background scheduler had no dedicated manual chapter. Condition types, validation rules, and plugin patterns were scattered or outdated.

This PR improves Javadoc on the published API surface, adds pragmatic doc checks to the build, and expands the manual with scheduler, conditions, validation, and plugin guides. It also fixes several 3.0/3.1 documentation errors (wrong version pins, fictional compat flags, incorrect shell examples).

What changed

Javadoc and build validation

  • Improve Javadoc on public and protected types in api, tracing-api, common, scripting, router-api, services-common, persistence-spi, rest, and scheduler/tenant code in services.
  • Add pragmatic validation: Maven Javadoc doclint (broken links/HTML/syntax only) and optional Checkstyle tag warnings via -Pjavadoc-tags-warn.
  • Wire build.sh --javadoc for a two-pass doclint + tag-warning check.
  • Fix duplicate @Override annotations in ParserHelper that broke compile.

Manual — new chapters and guides

  • scheduler.adoc — architecture, config, REST, shell, plugin patterns, metrics, troubleshooting (PlantUML diagrams).
  • conditions-guide.adoc — progressive conditions tutorial with diagrams and REST examples.
  • condition-validation.adoc — save-time condition parameter rules and error types.
  • builtin-condition-types.adoc / builtin-action-types.adoc — full built-in type catalogs.
  • Rewrite writing-plugins.adoc for Unomi 3.1 (ES/OS split, correct feature names, META-INF/cxs/ layout).
  • Document Declarative Services as the required OSGi style for new plugins (scheduler.adoc, builtin-condition-types.adoc, CLAUDE.md).

Manual — accuracy fixes

  • Remove fictional unomi.v3_0.compatibility.mode; align V2 compat property names.
  • Fix tenant create JSON (requestedId), shell CRUD examples, and multitenancy config keys.
  • Align version pins (ES 9.4.3, Java 17, Karaf 4.4.11) across manual and READMEs.
  • Expand whats-new, security, GraphQL auth, and cross-links (tracing, conditions, debugging).

Out of scope (follow-up)

  • Javadoc on legacy services impls and graphql/cxs-impl (~hundreds of tag warnings remain).
  • Full security content move from configuration.adoc to security.adoc.
  • Tier 2 sample walkthrough banners (e.g. twitter-sample.adoc Blueprint sections).

Test plan

  • mvn -pl api -Pjavadoc-tags-warn checkstyle:check — 0 violations
  • mvn -pl persistence-spi,rest,services -Pjavadoc-tags-warn checkstyle:check on cleaned packages — 0 violations
  • mvn -pl api javadoc:javadoc -DskipTests — passes with doclint
  • ./build.sh --javadoc --no-karaf — local pass
  • ./build.sh --javadoc — CI full pass
  • Build Documentation (AsciiDoc) — CI
  • Execute unit tests — CI

References

UNOMI-960, UNOMI-875

@sergehuber sergehuber changed the title UNOMI-960: Api Javadoc cleanup and pragmatic validation UNOMI-960: API Javadoc cleanup, validation tooling, and scheduler manual Jul 12, 2026
Improve Javadoc quality across api, rest, persistence-spi, services, and
router modules: fix layout, remove script-style comments, restore field
docs, and use fully qualified @link targets. Extend manual cross-links
for scheduler, multitenancy, and whats-new; fix TenantRequest Javadoc.
Remove fictional 3.0 compatibility mode, align version pins and config
keys with the codebase, update tenant/shell examples, expand whats-new
and security chapters, and refresh root and module READMEs for 3.1.
Add a progressive conditions guide with PlantUML diagrams and REST
examples. Document all built-in condition and action types in catalog
tables, fix remaining 3.x doc gaps (anchors, query builder naming,
healthcheck note, index structure).
Add a condition validation chapter, a debugging section in the conditions
guide, and cross-links from whats-new and request tracing docs.
Fix stale examples (evaluator interfaces, query builder paths, feature
names, POM artifacts), consolidate ES/OS guidance, document missing
META-INF/cxs paths, and add cross-links to validation and samples.
Document DS as the required OSGi registration style for new plugins,
replace Blueprint examples, and point readers at maintained modules
instead of legacy samples/.
Replace Blueprint scheduler wiring with Declarative Services examples and
state DS-first OSGi guidance in CLAUDE.md for contributors and agents.
@sergehuber sergehuber changed the title UNOMI-960: API Javadoc cleanup, validation tooling, and scheduler manual UNOMI-960: API Javadoc, manual docs, and validation tooling Jul 12, 2026
Use explicit [#id] section anchors for stable HTML/PDF cross-references,
resolve duplicate IDs and PlantUML/table issues, and align PDF idseparator
with underscore-based links so mvn clean install in manual builds cleanly.
…avigation

Align the manual with unomi.apache.org (Inter, brand colors, hero cover, site
nav/footer) and add responsive UX: burger nav plus bottom TOC sheet through
1023px, with desktop sidebar layout from 1024px.
…eview

Split merged comment lines that were rendering stray asterisks mid-sentence,
restore missing @ in several {@code}/{@link} tags, fix constructor/setter
indentation in two REST endpoints, clarify that TenantSecurityService isn't
actually wired into the OSGi runtime, and stop showing Blueprint-registered
built-in condition classes as if they used Declarative Services.
ProfileService#search(Query) doesn't exist (real signature takes a Class
too), and PersistenceService's Query links weren't resolvable since the
class isn't imported there. Both failed doclint's reference check.
@sergehuber sergehuber merged commit fa413ad into master Jul 12, 2026
7 checks passed
@sergehuber sergehuber deleted the UNOMI-960-javadoc-cleanup branch July 12, 2026 16:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant