anchor.diff:  
   image::https://raw.githubusercontent.com/lametaweb/lametaweb.github.io/master/images/009/post009-fig025.png[]
   
  -Es importante señalar que no existe una solución única a la hora de implementar un caso de uso, ni para la interfaz, ni para la manera en que implementemos el o los backing beans. Deberemos intentar siempre conseguir un resultado que proporcione la mejor experiencia de usuario al tiempo que cumpla todos los requisitos funcionales acordados con el cliente. Respecto de esto último el cliente podría por ejemplo pedirnos que desde la página de detalle fuera posible acceder a otra página que permitiera añadir un nuevo Drone.
  -
  -En un CRUD por tanto existirán tareas de programación generales y comunes a cualquier mantenimiento de entidades, y tareas especificas de ese CRUD, localizadas sobre todo en la pantalla de detalle, que son las que van a plantearnos los mayores retos a la hora de conseguir la funcionalidad deseada.
  +Es importante señalar que no existe una solución única a la hora de implementar un caso de uso, ni para las páginas, ni los backing beans. Como regla general intentaremos siempre conseguir un resultado que proporcione la mejor experiencia de usuario al tiempo que cumpla con todos los requisitos funcionales acordados con el cliente. Respecto de esto último el cliente podría por ejemplo pedirnos que en la página de detalle dispusieramos de ventanas emergentes de asistencia: Ventana calculadora de distancias entre dos puntos, ángulos entre trayectorias, conversión de unidades, etc.
  +
  +En un CRUD por tanto existirán tareas de desarrollo generales y comunes a cualquier mantenimiento, y tareas especificas, localizadas sobre todo en la pantalla de detalle, que son las que van a plantearnos los mayores retos a la hora de conseguir la funcionalidad deseada.
  +
  +== Configuraciones en el entorno de trabajo.
   
   Hacemos aquí un paréntesis para actualizar el entorno de trabajo. Queremos que nuestra productividad sea máxima y para ello decidimos instalar la librería de componentes Primefaces así como la última versión disponible de JSF.
   
  -Añadir Primefaces al proyecto es sencillo, basta con añadir la dependencia correspondiente a Maven:
  +Añadir Primefaces al proyecto es sencillo, basta con añadir la dependencia correspondiente al proyecto:
   
   [source,xhtml,indent=0]
   ----
  
positive.code: 
  Y hasta aquí los aspectos más importantes de la página de maestro.
  
  === La página de detalle: trabajo.xhtml 
  
  Como hemos visto esta pantalla es más compleja que la de maestro y su complejidad dependerá del número y tipo de relaciones de la entidad que queremos gestionar.
  
  
negative.code: 		</dependency>
  ----
  
  Sin embargo, subir JSF de la versión 2.1 a la 2.2 no es tan simple. El proceso para añadir un nuevo módulo con JSF 2.2 en nuestro servidor JBoss EAP 6.3 no es directo. He intentado seguir el procedimiento existente en internet sin resultados. En resumen el proceso pasa por bajar una aplicación Maven desde Github que genera un fichero CLI que realiza el deploy de los tres slots para los tres módulos que se ven afectados por la actualización. Sin embargo uno de los slots da problemas ya que parece que el script está actualizado para operar con las versiones iniciales del servidor Wildfly y no con JBoss EAP.
  
  A la vista de lo anterior se optará por instalar el nuevo servidor Wildfly en su última versión, la 9.0.1, y así tener disponible además una plataforma Java EE 7 completa. Lo primero será descargar el fichero de instalación del servidor desde http://wildfly.org/downloads/[aquí]. Tenéis que elegir la primera de las opciones en la lista, etiquetada con Java EE7 Full & Web Distribution. En el momento de redactar este Post ya estaba disponible Wilfly 10, así que podéis instalarlo en vez de el 9. Entiendo que no debe afectar en cuento a instalación e integración con Eclipse.
  
  NOTE: Descargaos también los _Quickstarts_ porque os van a venir muy bien como material de consulta en las etapas iniciales de la implementanción de un nuevo proyecto sea cual sea su naturaleza.
  
  Después de instalar el nuevo servidor y antes de iniciarlo debemos añadir un usuario. Para ello tenemos que ejecutar el archivo por lotes _bin\add-user.bat_.
  
  Una vez instalado WildFly lo añadimos a Eclipse como nueva unidad de ejecución. La versión de las JBoss Tools sólo ofrecía un conector para la versión 8 pero después de las pruebas de arranque y parada se comprueba no hay problemas con esto.
  
  NOTE: Si queréis practicar con el programa de control de versiones Git podéis hacer un fork de la aplicación jdrone en vuestra cuenta de GitHub y a continuación crear un repo local Git que os permita realizar pruebas sobre la aplicación en vuestra máquina.
  
  Bien, después de actualizar a Wilfly 9 ó 10 ¿Qué cambios tenemos que hacer en nuestro proyecto? En primer lugar tendremos que adaptar las dependencias Maven a las del nuevo servidor, un proceso sin demasiada complicación. Podéis consultar el contenido del fichero _pom.xml_ en GitHub.
  
  Se ha refactorizado además el ciclo de construcción de modo que ahora existe un profile _despliegue-recursos_ que se debe ejecutar la primera vez que despleguemos la aplicación, o bien cuando los recursos hayan sido eliminados del mismo por cualquier motivo. Tenéis también que crear un nueva configuración de ejecución: Botón derecho sobre proyecto y _Run As_ > _Run Configurations..._  Botón derecho sobre _Maven build_ > _New_.  En la entrada _Goals_ escribid `clean install -Pdespliegue-recursos` y dad un nombre al nuevo perfil.
  
  En segundo lugar, como vamos a subir desde JSF 2.1 a 2.2 tenemos que actualizar los espacios de nombres en el nodo raiz del fichero _faces-config.xml_. Además tendremos que actualizar la faceta JavaServer Faces del proyecto. La desmarcamos, esperamos a que se desinstale y la volvemos a marcar. Al añadir de nuevo la opción _JSF Implementation Library_ dejadla así _Type > Disable Library Configuration_.
  
  Para comprobar que JSF 2.2 funciona correctamente modificamos nuestra página _index.xhtml_ para adaptarla a HTML5 y JSF 2.2, añadiendo además una etiqueta nueva en la versión 2.2.
  
  Para la adaptación a HTML 5 actualizamos la página así:
  
  `<!DOCTYPE html>`
  
  