# 🏢 mss-failsafe — Multi-Module Enterprise Application ![MSS Failsafe Banner](http://192.168.188.119:30008/pplate/pi_mcps/raw/branch/main/docs/wiki/images/mss-failsafe-banner.png) **mss-failsafe** is a multi-module Java EE enterprise web application demonstrating advanced patterns: modular Maven builds, Jakarta Security (Soteria), and multi-layer JPA architecture. ## Tech Stack | Component | Technology | |---|---| | **Language** | Java 11 | | **Web Framework** | JSF 2.3 (Facelets/XHTML) | | **UI Components** | PrimeFaces 10 | | **Persistence** | JPA (multi-module) | | **Security** | Jakarta Security / Soteria | | **Build** | Maven multi-module | | **App Server** | WildFly/JBoss | ## Module Structure ``` java/mss-failsafe/ ├── pom.xml ← Parent POM (multi-module) ├── mssfailsafe.datalayer/ ← JPA entities + persistence │ ├── pom.xml │ └── src/main/resources/META-INF/persistence.xml ├── userdata/ ← User data model module │ └── pom.xml └── userManagement/ ← Web UI module (JSF/PrimeFaces) ├── pom.xml ├── nb-configuration.xml ← NetBeans config └── src/main/webapp/ ├── index.xhtml ← Landing page ├── error.xhtml ← Error handling page ├── admin/ │ └── welcome.xhtml ← Admin dashboard ├── user/ │ └── welcome.xhtml ← User welcome page └── WEB-INF/ ├── web.xml ├── jboss-web.xml └── jboss-app.xml ``` ## Architecture Layers ``` userManagement (Web/UI layer) │ ▼ userdata (Domain model layer) │ ▼ mssfailsafe.datalayer (JPA persistence layer) │ ▼ Database (via persistence.xml datasource) ``` ## Key Features - **Multi-Module Maven** — Clean separation of concerns across 4 modules - **Jakarta Security (Soteria)** — Modern declarative security replacing legacy JAAS - **Role-Based Access** — Admin vs User role segregation (`admin/` and `user/` view paths) - **PrimeFaces 10** — Modern PrimeFaces with updated component API - **Error Handling** — Dedicated `error.xhtml` with JSF error page mapping ## Security Model Soteria-based security with two roles: | Role | Path | Access | |---|---|---| | `admin` | `/admin/*` | Full admin dashboard | | `user` | `/user/*` | Standard user views | ## Building ```bash cd java/mss-failsafe mvn clean install # builds all modules in dependency order # Deploy userManagement.war to WildFly ``` ## Notes - Represents a more mature architecture than wellmann-shop (Java 11, PrimeFaces 10) - Demonstrates multi-module Maven project management - Soteria replaces legacy JAAS — more modern Jakarta EE security approach - Pattern mirrors what Patrick uses professionally in the Paisy/ADP codebase ## Source [`java/mss-failsafe/`](../src/branch/main/java/mss-failsafe)