Changes for page How to Customize XWiki Without Creating Upgrade Problems
Last modified by Agnease on 2026/05/26 11:00
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -216,50 +216,40 @@ 216 216 217 217 <h2 id="custom-development-faq">XWiki custom development FAQ</h2> 218 218 219 - <details class="resource-faq-item" open> 220 - <summary>Does custom development make XWiki harder to upgrade?</summary> 221 - <p> 222 - Not automatically. Custom development becomes harder to upgrade when it is undocumented, mixed with regular 223 - content, applied directly in production or missing from the upgrade validation plan. Well-organized custom work 224 - can remain maintainable across upgrades. 225 - </p> 226 - </details> 219 + <h3>Does custom development make XWiki harder to upgrade?</h3> 220 + <p> 221 + Not automatically. Custom development becomes harder to upgrade when it is undocumented, mixed with regular 222 + content, applied directly in production or missing from the upgrade validation plan. Well-organized custom work 223 + can remain maintainable across upgrades. 224 + </p> 227 227 228 - <details class="resource-faq-item"> 229 - <summary>Where should XWiki custom code be stored?</summary> 230 - <p> 231 - Custom wiki pages, scripts, templates and configuration should usually be kept in dedicated technical spaces. 232 - Code and important assets should also be tracked in a source control system, such as Git, so changes are not 233 - stored only in the production wiki. 234 - </p> 235 - </details> 226 + <h3>Where should XWiki custom code be stored?</h3> 227 + <p> 228 + Custom wiki pages, scripts, templates and configuration should usually be kept in dedicated technical spaces. 229 + Code and important assets should also be tracked in a source control system, such as Git, so changes are not 230 + stored only in the production wiki. 231 + </p> 236 236 237 - <details class="resource-faq-item"> 238 - <summary>When should an XWiki customization become an extension?</summary> 239 - <p> 240 - Packaging a customization as an extension is useful when the feature becomes complex, reusable, business-critical 241 - or shared across multiple instances. Java components, event listeners, scheduled jobs and integrations often 242 - benefit from an extension-based approach. 243 - </p> 244 - </details> 233 + <h3>When should an XWiki customization become an extension?</h3> 234 + <p> 235 + Packaging a customization as an extension is useful when the feature becomes complex, reusable, business-critical 236 + or shared across multiple instances. Java components, event listeners, scheduled jobs and integrations often 237 + benefit from an extension-based approach. 238 + </p> 245 245 246 - <details class="resource-faq-item"> 247 - <summary>What should be tested after an XWiki upgrade?</summary> 248 - <p> 249 - Besides standard pages, the validation should include custom dashboards, templates, macros, workflows, 250 - permissions, notifications, PDF exports, scheduled jobs, integrations and any custom applications used by the 251 - organization. 252 - </p> 253 - </details> 240 + <h3>What should be tested after an XWiki upgrade?</h3> 241 + <p> 242 + Besides standard pages, the validation should include custom dashboards, templates, macros, workflows, 243 + permissions, notifications, PDF exports, scheduled jobs, integrations and any custom applications used by the 244 + organization. 245 + </p> 254 254 255 - <details class="resource-faq-item"> 256 - <summary>Why should configuration be kept outside custom code?</summary> 257 - <p> 258 - Values such as group names, target spaces, external URLs, email recipients and workflow settings can change over 259 - time. Keeping them in configuration pages or preference objects makes custom features easier to adapt without 260 - changing the implementation. 261 - </p> 262 - </details> 247 + <h3>Why should configuration be kept outside custom code?</h3> 248 + <p> 249 + Values such as group names, target spaces, external URLs, email recipients and workflow settings can change over 250 + time. Keeping them in configuration pages or preference objects makes custom features easier to adapt without 251 + changing the implementation. 252 + </p> 263 263 264 264 <div class="resource-note"> 265 265 <p>