← ClaudeAtlas

faces-migratelisted

Migrate a Jakarta Faces project from one version to another (e.g. JSF 2.3 to Faces 4.1)
omnifaces/claude-faces-expert · ★ 14 · AI & Automation · score 76
Install: claude install-skill omnifaces/claude-faces-expert
*Version 1.2.3* Migrate the current project to Jakarta Faces `$ARGUMENTS` (if no argument, ask the developer for the target version). ## Step 1: Detect Current Version Determine the current Faces version from: - `pom.xml` or `build.gradle` dependencies (look for `javax.faces`, `jakarta.faces`, `jsf-api`, `myfaces-api`). - `faces-config.xml` version attribute. - XML namespaces in XHTML files (`java.sun.com` = JSF 1.0+, `xmlns.jcp.org` = JSF 2.2+, `jakarta.faces` = Faces 4.0+). - Package imports in Java files (`javax.faces` = JSF 1.x/2.x vs `jakarta.faces` = Faces 3.0+). Also determine the **runtime type**: - **Full EE server** (WildFly, GlassFish, TomEE, Payara, WebSphere, Liberty, etc.): Faces, CDI, BV, EJB, JPA, JAX-RS, etc. are all provided by the runtime; the project should depend on the Java EE / Jakarta EE API artifact with `<scope>provided</scope>`, not on standalone implementations. - **Barebones servlet container** (Tomcat, Jetty, Undertow, etc.) or **framework** (Spring Boot): Tomcat only provides Servlet, JSP, EL, WebSocket, and JASIC; everything else (Faces, CDI, BV, JSTL, etc.) must be installed/bundled separately with the application. When updating dependencies in migration steps, update the appropriate artifact: - On a full EE server: update the EE API version and ensure the target server version supports the target Faces version. - Java EE 8 (JSF 2.3): `javax:javaee-web-api:8.0` with `<scope>provided</scope>` - Jakarta EE 9 (Faces 3.0): `jakarta.platfo