:index-group: Unrevised
:jbake-type: page
:jbake-status: status=published
= MyFaces CODI Demo


=== Pasos para ejecutar el ejemplo

[discrete]
==== Construir y arrancar la demo:

[source,bash]
----
mvn clean package tomee:run
----


==== Abrir:
....
http://localhost:8080/myfaces-codi-demo-8.0.1-SNAPSHOT/
....


Este ejemplo muestra como mejorar aplicaciones JSF2/CDI/BV/JPA usando
la funcionalidad proporcionada por  Apache MyFaces CODI y ExtVal.

[discrete]
==== Introducción a MyFaces CODI y ExtVal

El proyecto CDI de Extensiones de Apache MyFaces (también conocido como CODI) 
aloja extensiones portábles para Contextos e Inyección de Dependencias (CDI - JSR 299). CODI
es una caja de herramientas para su aplicación CDI. Al igual que CDI, CODI está enfocado
en seguridad de tipo (type-safety). Es un marco modularizado y extensible. Entonces es
Fácil elegir las piezas necesarias para facilitar el trabajo diario en su proyecto.

MyFaces Extensions Validator (también conocido como ExtVal) es un framework centrado 
en validación JSF que es compatible con JSF 1.xy JSF 2.x. Este ejemplo
muestra cómo mejorar la integración predeterminada de Bean-Validation
(JSR-303) con JSF2 y validación de campo cruzado (cross-field) basada en metadatos.


Illustrated Features

Apache MyFaces CODI

Type-safe view-config

Type-safe (custom) view-meta-data

Type-safe navigation

Type-safe (specialized) config

Type-safe custom project-stage

@WindowScoped

Controlling CODI scopes with WindowContext

@ViewAccessScoped

Manual conversation handling

Secured pages (AccessDecisionVoter)

@Transactional

I18n (fluent API)

Dependency-Injection for JSR303 (BV) constraint-validators

Dependency-Injection for JSF phase-listeners

Apache MyFaces ExtVal

Cross-Field validation (@Equals)

Type-safe group-validation (@BeanValidation) for JSF action-methods
