diff --git a/README.md b/README.md
index 2889e3f..bc60608 100644
--- a/README.md
+++ b/README.md
@@ -73,22 +73,16 @@ a parse failure and set a `fess.webapp.plugin` marker property.
-
- "index"
- "index.jsp"
-
-
```
> **Maintenance cost (read before overriding):** because a redefine replaces the
-> *whole* definition, the override must repeat **every** `postConstruct` the core
-> `systemHelper` performs — the full set of design-JSP name mappings. These
-> are copied verbatim from Fess core's `fess.xml`, and the referenced `*.jsp`
-> files are provided by Fess itself (this plugin ships none of them). You must
-> keep that list in sync with each Fess release, or design pages (e.g.
-> `chat` / `busy` / `newpassword`) will stop resolving. This is exactly why
-> Pattern 1 is preferred whenever you do not truly need to replace core behavior.
+> *whole* definition, the override must repeat **every** property and
+> `postConstruct` that Fess core declares for the component in `fess.xml`. Fess
+> 15.9 declares none for `systemHelper`; earlier releases registered the
+> design-JSP pages here, which 15.9 removed. Check `fess.xml` for each Fess
+> release you support. This is exactly why Pattern 1 is preferred whenever you do
+> not truly need to replace core behavior.
## The `Fess-WebAppJar` manifest
@@ -114,7 +108,7 @@ application's classloader. This is set in [`pom.xml`](pom.xml) via the
- Java 21 or later
- Maven 3.8 or later
-- Fess 15.8 or later
+- Fess 15.9 or later
## Project structure
diff --git a/src/main/java/org/codelibs/fess/webapp/example/helper/CustomSystemHelper.java b/src/main/java/org/codelibs/fess/webapp/example/helper/CustomSystemHelper.java
index 6424587..2a0b14c 100644
--- a/src/main/java/org/codelibs/fess/webapp/example/helper/CustomSystemHelper.java
+++ b/src/main/java/org/codelibs/fess/webapp/example/helper/CustomSystemHelper.java
@@ -32,7 +32,7 @@
* {@code fess+systemHelper.xml}) tells LastaDi to register THIS class in place
* of the core {@link SystemHelper}. Because a redefine REPLACES the whole
* component definition, the override XML must repeat every {@code postConstruct}
- * the core definition performs (the design-JSP name mappings) — see
+ * the core definition performs (Fess 15.9 declares none) — see
* {@code fess+systemHelper.xml} for the details and the maintenance cost this
* implies.
*
diff --git a/src/main/resources/fess+systemHelper.xml b/src/main/resources/fess+systemHelper.xml
index 0b488cf..43148f1 100644
--- a/src/main/resources/fess+systemHelper.xml
+++ b/src/main/resources/fess+systemHelper.xml
@@ -11,94 +11,16 @@
below. Contrast this with the additive "app++.xml" in this plugin, which ADDS
a brand-new component instead of replacing an existing one.
- IMPORTANT: a redefine replaces the ENTIRE component definition, so this file
- must repeat every postConstruct that Fess core performs on systemHelper -
- namely the design-JSP name mappings below. They are copied verbatim from Fess
- core's fess.xml (the referenced *.jsp files are provided by Fess itself, not
- by this plugin). If you override a core component, keep this list in sync with
- each Fess release; otherwise design pages (e.g. chat / busy / newpassword)
- will stop resolving. That maintenance cost is the main reason to prefer adding
- a new component (app++.xml) whenever you do not truly need to replace core
- behavior.
+ IMPORTANT: a redefine replaces the ENTIRE component definition, so it must
+ repeat every property and postConstruct that Fess core declares for the
+ component. Fess 15.9 declares none for systemHelper, so this override has
+ none either. Check fess.xml of the Fess release you build against and keep
+ this file in step with it. That maintenance cost is the main reason to prefer
+ adding a new component (app++.xml) whenever you do not truly need to replace
+ core behavior.
-->
-
- "index"
- "index.jsp"
-
-
- "header"
- "header.jsp"
-
-
- "footer"
- "footer.jsp"
-
-
- "search"
- "search.jsp"
-
-
- "searchResults"
- "searchResults.jsp"
-
-
- "searchNoResult"
- "searchNoResult.jsp"
-
-
- "searchOptions"
- "searchOptions.jsp"
-
-
- "advance"
- "advance.jsp"
-
-
- "help"
- "help.jsp"
-
-
- "error"
- "error/error.jsp"
-
-
- "errorNotFound"
- "error/notFound.jsp"
-
-
- "errorSystem"
- "error/system.jsp"
-
-
- "errorBadRequest"
- "error/badRequest.jsp"
-
-
- "errorBusy"
- "error/busy.jsp"
-
-
- "cache"
- "cache.hbs"
-
-
- "login"
- "login/index.jsp"
-
-
- "newpassword"
- "login/newpassword.jsp"
-
-
- "profile"
- "profile/index.jsp"
-
-
- "chat"
- "chat/chat.jsp"
-