Sakai 25 Patch Highlights: October 2025 →
Converting Samigo JSP to Facelets
October 21, 2025 Development

Converting Samigo JSP to Facelets

What it took to move Samigo authoring views from JSP to Facelets and why it matters for the JSF 4 path.

Converting Samigo JSP to Facelets

Developers pairing at a laptop

A new pull request, which is the first checkpoint for lifting the Samigo authoring stack off legacy JSP. The patch replaces the JSP fragments with Facelets, introduces MainIndexRouter so routing logic lives in a managed bean instead of web.xml, and wires XHTML validation into Maven. This is the groundwork we need before leaning on JSF 4 features.

Old JSF deployments leaned on JSP with taglibs and a bunch of f:subview glue. Those pages were brittle, hard to compose, and impossible to template cleanly. Facelets fixes that by treating markup as a real component tree. We get reusable templates, declarative composition, and a predictable lifecycle without depending on JSP quirkiness.

The xml-maven-plugin addition is already paying off. Every Facelet in src/webapp/jsf is validated during mvn validate, so the build fails fast if someone leaves a namespace typo or mismatched tag. That safety net lets an LLM take on monotonous refactors: point it at the validator output, and it can iterate until the XHTML passes without clicking through the UI to find predictable bugs.

None of this ships without tests. The authoring listeners already have coverage, and we extended those tests to pin down the new routing behavior. Any regression shows up in CI before QA touches it. The more we convert, the more crucial that coverage becomes because every renamed EL expression can break a workflow.

Facelets is part of a bigger modernization push. Sakai needs to reach JDK 21 and the Jakarta namespace shift to stay aligned with the JSF 4 ecosystem. Cleaning up the view layer removes one more blocker to running on the jakarta.* APIs and taking advantage of the newer servlet and CDI updates.

Java keeps modernizing around us. The JDK 21 toolchain brings virtual threads, structured concurrency, and better vector APIs into the mainstream. Aligning Sakai with that pace means we can adopt those improvements instead of maintaining compatibility shims for decade-old releases.

Next on our list is expanding unit coverage around MainIndexRouter and translating the remaining JSP screens. Once the Facelets migration lands, we can flip the switch to the JSF 4 runtime with fewer surprises.

Related Articles

Sakai 25 Patch Highlights: September 2025
September 24, 2025 Sakai

Sakai 25 Patch Highlights: September 2025

A tour of the most visible fixes and refinements delivered across Assignments, Gradebook, Lessons, and the wider Sakai 25.x experience this quarter.

Powering UI with Lit Web Components
Jan 10, 2025 Open Source

Powering UI with Lit Web Components

Discover how Sakai leverages Lit’s lightweight, standards-based web components to build a scalable, maintainable, and high-performance LMS interface for universities and enterprises.

Ready to transform your educational technology?

Whether you're a small school, an educational startup, or a large institution, our open-source solutions can be tailored to meet your specific needs and budget.