Skip to content

docs(dev): correct 15.8 plugin architecture guide against implementation#448

Merged
marevol merged 1 commit into
masterfrom
docs/15.8-plugin-architecture
Jul 16, 2026
Merged

docs(dev): correct 15.8 plugin architecture guide against implementation#448
marevol merged 1 commit into
masterfrom
docs/15.8-plugin-architecture

Conversation

@marevol

@marevol marevol commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Summary

Reviewed the developer plugin-architecture guide (15.8/dev/plugin-architecture.rst) against the current Fess source code and corrected several inaccuracies, then propagated the corrected content to all languages (ja, en, de, fr, es, ko, zh-cn). The Japanese version was verified first and used as the source for the translations.

Corrections

  • Plugin types — Listed all categories recognized by PluginHelper.ArtifactType (data store, web app, script engine, ingest, theme, thumbnail, LLM, crawler) with their artifact-name prefixes, and noted the list is not exhaustive.
  • Plugin structure — Replaced the fabricated layout with the real fess-ds-example structure and added the fess_ds++.xml registration file. Removed the non-existent ExampleDataStoreHandler.java.
  • pom.xml — Inherit from fess-parent and declare fess / opensearch with provided scope (matching the real reference plugin).
  • Registration — Documented the ++ DI merge convention (fess_ds++.xml, fess_se++.xml, fess_ingest++.xml, fess_llm++.xml, app++.xml). Fixed register() to call ComponentUtil.getDataStoreFactory().add(getName(), this), and clarified it runs via the <postConstruct> element rather than the Java @PostConstruct annotation.
  • storeData() — Corrected the signature to use DataStoreParams (not Map<String, String>) and getAsString() for parameter access; getName() is protected.
  • Installation — Install from the admin console (select from the plugin repository list or upload a JAR), or copy the JAR to app/WEB-INF/plugin/. Removed the non-existent CLI command.
  • Misc — Referenced the IDE boot class org.codelibs.fess.FessBoot, refreshed the published-plugin list, and added links to theme-development and the plugin installation guide.

Verification

  • All examples checked against fess-ds-example, AbstractDataStore, PluginHelper, ResourceUtil, and AdminPluginAction.
  • Structural parity across all 7 languages verified (code blocks, tables, :doc: targets, |Fess| substitutions), no residual source-language text, proper diacritics for de/fr/es, and valid RST section underlines.

Verified the developer plugin-architecture guide against the current
source and corrected several inaccuracies, then propagated the changes
to all languages (ja, en, de, fr, es, ko, zh-cn).

- Plugin types: list all categories recognized by
  PluginHelper.ArtifactType (data store, web app, script, ingest,
  theme, thumbnail, LLM, crawler) with their artifact prefixes
- Plugin structure: use the real fess-ds-example layout and add the
  fess_ds++.xml registration file (removed the non-existent
  ExampleDataStore(Handler) file)
- pom.xml: inherit from fess-parent and use provided scope for fess and
  opensearch
- Registration: document the "++" DI merge convention (fess_ds++.xml
  etc.); fix register() to call ComponentUtil.getDataStoreFactory()
  and clarify it runs via the <postConstruct> element, not the Java
  @PostConstruct annotation
- storeData(): correct the signature to DataStoreParams and use
  getAsString(); getName() is protected
- Install: install from the admin console (select from repository list
  or upload a JAR) or copy the JAR to app/WEB-INF/plugin/; removed the
  non-existent CLI command
- Reference the IDE boot class org.codelibs.fess.FessBoot and add links
  to theme-development and the plugin installation guide
@marevol marevol merged commit 01ca325 into master Jul 16, 2026
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