: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:
[source,java]
----
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
