Skip to content

docs(dev): rewrite 15.8 Web App plugin guide to match implementation#451

Open
marevol wants to merge 1 commit into
masterfrom
docs/15.8-webapp-plugin
Open

docs(dev): rewrite 15.8 Web App plugin guide to match implementation#451
marevol wants to merge 1 commit into
masterfrom
docs/15.8-webapp-plugin

Conversation

@marevol

@marevol marevol commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Summary

The 15.8 Web App plugin developer guide (dev/webapp-plugin.rst) described an
Action + JSP page model that does not match any real fess-webapp-* plugin and
whose code examples do not compile. This PR rewrites the guide to document how
Web App plugins actually extend Fess.

Problems with the previous content

  • JSP views cannot be served from a plugin. Plugin JARs are mounted onto the
    web application classpath (WEB-INF/classes), not WEB-INF/view, so the
    documented src/main/webapp/WEB-INF/view/.../index.jsp layout is never packaged
    or resolved.
  • path_Example_IndexJsp does not exist for plugins. The FessHtmlPath
    constants are generated (FreeGen) only from core Fess views, so the page Action
    example does not compile.
  • The API example does not compile. ApiResult.ApiResponse has no
    .result(Map...) method (the builder order was also reversed), and the base
    action rejects all requests unless access control is overridden.

What the guide now documents

Web App plugins extend Fess by adding or replacing DI (Lasta Di) components:

  • Adding new components via app++.xml
  • Overriding core components via fess+<componentName>.xml
  • Adding REST API endpoints via fess_api++.xml + WebApiManager / BaseApiManager
  • The required Fess-WebAppJar: true JAR manifest entry
  • Build and installation, and how to customize the search screen (themes)
  • A list of the published fess-webapp-* plugins

All examples are grounded in the real fess-webapp-example, fess-webapp-v1-api,
and fess-webapp-classic-api plugins.

Languages

Japanese (source of truth) was rewritten and verified against the implementation;
en, de, fr, es, ko, and zh-cn were re-translated to match.

Verification

  • Code identifiers, values, file names, and paths are byte-identical across all
    seven languages.
  • RST structure (directives, code blocks, list tables, :doc: references) is
    consistent across languages, and heading underline lengths are adequate
    (East-Asian-width aware).
  • de/fr/es use correct orthography with full diacritics.

The Web App plugin developer guide described an Action + JSP page model
that does not match any real fess-webapp-* plugin and whose code
examples do not compile:

- Plugin JARs are mounted onto the web app classpath (WEB-INF/classes),
  not WEB-INF/view, so a plugin cannot serve a JSP view as shown.
- The path_Example_IndexJsp constant is only generated for core Fess
  views, never for a plugin.
- The API example used a non-existent ApiResult builder API and a base
  action that rejects all requests by default.

Rewrite the guide (ja) and re-translate all languages to document how
Web App plugins actually extend Fess via the Lasta Di container:

- Adding components via app++.xml
- Overriding core components via fess+<componentName>.xml
- Adding REST API endpoints via fess_api++.xml and WebApiManager
- The required Fess-WebAppJar manifest entry, build, and installation
- A list of the published fess-webapp-* plugins

Examples are grounded in fess-webapp-example, fess-webapp-v1-api, and
fess-webapp-classic-api.
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