Sample Maven project with Jakarta Faces CRUD Web App
- Simple DAOMap for testing purpose
- Sample DAOJPA implementation
- Uses CDI annotations with qualifiers for DAO selection in Controller
- Bean Validation with customized messages on ValidationMessages.properties
- Custom BeanValidation Implementation:
@Dni
- Simple Entity CRUD views
- DataTable row editing view
- Sample view modification using AJAX
- H2 database connection
- Standard JNDI connection pool definition in web.xml
- Persistence.xml configuration with JNDI datasource
- Optional access control rules
- JEE Security API options :
- IdentityStores: Embedded, Database, Custom
- HttpAuthenticationMethods: Basic, Form, CustomJSF Form/controller
- JDK 17+
- Jakarta EE 10 Application Server, e.g. Payara 6+
- WildFly 20+:
- Requires disabling integrated JASPI to support Jakarta EE Security API. There is a configuration script to apply these changes in https://github.com/wildfly/quickstart/tree/main/ee-security#configure-the-server
- Add H2 Database runtime support to pom.xml
- Compile and deploy in a JEE Application Server
- Configure JEE Datasource in web.xml
- Select Map or JPA DAOs implementation in controller, AppConfig and ClubIdentityStore classes
- Create sample data on AppConfig class
- (optional) resources/META-INF/sql/schema.sql can be used to create tables not managed by JPA
- (optional) resources/META-INF/sql/sampledata.sql used to insert sample data into JPA managed tables
- Uncomment access-restriction section in access control rules (web.xml)
- Uncomment required HttpAuthenticationMechanism in AppConfig class. Standard Form by default
- Uncomment preferred IdentityStore/s in AppConfig class if required.
- Custom ClubIdentityStore available by default. Select Map or JPA DAOs implementation to access user credentials.