Migrating to ICEfaces 2 (Spanish)

7.072 visualizaciones

Publicado el

Transparencias del Taller de migración a ICEfaces 2. Más información: http://blog.mimacomiberica.es/

Publicado en: Tecnología
0 comentarios
1 recomendación
Estadísticas
Notas
  • Sé el primero en comentar

Sin descargas
Visualizaciones
Visualizaciones totales
7.072
En SlideShare
0
De insertados
0
Número de insertados
481
Acciones
Compartido
0
Descargas
137
Comentarios
0
Recomendaciones
1
Insertados 0
No insertados

No hay notas en la diapositiva.

Migrating to ICEfaces 2 (Spanish)

  1. 1. Presentado por 2.0 ICESOFT TECHNOLOGIES INCICESOFT TECHNOLOGIES INC Wednesday, March 30, 2011 www.icefaces.org www.icefaces.org | www.mimacom.comSlide: 0
  2. 2. ¡Bienvenidos! • Introducciones Moderador • Audio silenciado Jean-François Clercx • Encuesta CEO Mimacom Ibérica Presentador José Antonio Álvarez Software Engineer Mimacom www.icefaces.org | www.mimacom.com
  3. 3. Migrando a ICEfaces 2: Agenda• Novedades en JSF 2• Novedades en ICEfaces 2• Demo: Migración de una aplicación existente de ICEfaces 1.8 a 2.0• Turno de preguntas y respuestas www.icefaces.org | www.mimacom.com
  4. 4. ICEfaces 2• La nueva generación para desarrollo JSF AJAX• Construido sobre JSF 2• Capa de Compatibilidad – Permite una adaptación sencilla desde ICEfaces 1.8 y JSF 1.2 – Ofrece los componentes de ICEfaces 1.8 para su uso en JSF 2• Nuevos componentes• Configuración más sencilla• Mejor compatibilidad• Muchas nuevas características sobre JSF 2 www.icefaces.org | www.mimacom.com
  5. 5. Novedades JSF 2JSF 2 aporta muchas mejoras frente a JSF 1.2.• AJAX como parte de la arquitectura estándar - Peticiones Ajax y actualizaciones parciales se integran en el ciclo de vida JSF• Parte de JEE6• Facelets se presenta como el estándar• Desarrollo de componentes más fácil y sencillo con Facelets• El tráfico se reduce mediante el guardado parcial de estado• Soporte más amplio para eventos del sistema www.icefaces.org | www.mimacom.com
  6. 6. Novedades en JSF 2, cont.JSF 2 aporta muchas mejoras frente a JSF 1.2.• HTTP GET soportado en el ciclo de vida JSF• Nuevos ámbitos para beans, y soporte para ámbitos custom• Anotaciones• Carga de recursos estandarizada• Mejora de manejo de excepciones• Navegación mejorada• Y más … www.icefaces.org | www.mimacom.com
  7. 7. Novedades en ICEfaces 2ICEfaces 2 amplía y simplifica el desarrollo en JSF• AJAX automático y renderizado Direct-2-DOM• Single Submit - Ciclo de vida se ejecuta en un único componente 2.0• AJAX Push• Bean Management - Se ofrecen anotaciones que ajustan el comportamiento de beans de ámbito View• Registro del uso de recursos• Desarrollo de Portlets con PortletFaces Bridge• APIs de cliente - Monitorización de Eventos, envío de formularios, callbacks de eventos y monitorización de conexión AJAX Push www.icefaces.org | www.mimacom.com
  8. 8. Novedades en ICEfaces 2, cont.ICEfaces 2 amplía y simplifica el desarrollo en JSF• Configuración simplificada• Componentes ricos - ICEfaces Components 2.0 - ICEfaces Advanced Components - ICEfaces Enterprise Components• Capa de Compatibilidad 1.8 - Actualiza rápidamente tu aplicación ICEfaces 1.8 a 2.0 con cambios menores• Nuevo Ámbito Window• Mejora de clustering y tolerancia a fallos www.icefaces.org | www.mimacom.com
  9. 9. Demo: Actualización de aplicación existente Usando la integración de Eclipse IDE Screen shot 2.0 www.icefaces.org | www.mimacom.com
  10. 10. Actualizando de ICEfaces 1.8 a 2.0Paso 1, configuramos las librerías usadas …1. Actualización de JSF jars • jsf-impl.jar: 1.2 – 2.0 (ICEfaces 2.0 viene con Mojarra 2.0.3 FCS) • jsf-api.jar2. Actualización de ICEfaces jars • icefaces.jar: 1.8 – 2.0 • icefaces-comps.jar -> icefaces-ace.jar, icefaces-compat.jar • nueva librería independiente para AJAX Push: icepush.jar3. Jars que ya no se necesitan • backport-util-concurrent.jar • commons-beanutils.jar • commons-digester.jar • commons-el.jar • commons-fileupload.jar • icefaces-facelets.jar www.icefaces.org | www.mimacom.com
  11. 11. Actualizando de ICEfaces 1.8 a 2.0Paso 2, editamos faces-config.xml…1. Actualizamos la cabecera de faces-config.xml • Antigua: <faces-config xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd" version="1.2"> • Nueva: <faces-config xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd" version="2.0"> www.icefaces.org | www.mimacom.com
  12. 12. Actualizando de ICEfaces 1.8 a 2.0Paso 2, editamos faces-config.xml…2. Eliminamos la declaración del Controlador de Vista • Declaración antigua: … <view-handler> com.icesoft.faces.facelets.D2DFaceletViewHandler </view-handler> … www.icefaces.org | www.mimacom.com
  13. 13. Actualizando de ICEfaces 1.8 a 2.0Paso 2, editamos faces-config.xml…3. Cambiamos los ámbitos de beans: • El ámbito request ICEfaces se cambia por el nuevo ámbito View • Ámbito antiguo: ... <managed-bean-scope>request</managed-bean-scope> ... • Nuevo ámbito: ... <managed-bean-scope>view</managed-bean-scope> ... www.icefaces.org | www.mimacom.com
  14. 14. Actualizando de ICEfaces 1.8 a 2.0 Paso 3, actualización de web.xml… 1. Eliminamos los Servlets y mapeos de ICEfaces 1.8: • ICEfaces 2 se basa ahora en servlets estándar de JSF • Servlets y mapeos antiguos:<servlet> <servlet-name>Persistent Faces Servlet</servlet-name> <servlet-class>com.icesoft.faces.webapp.xmlhttp.PersistentFacesServlet</servlet-class></servlet><servlet-mapping> <servlet-name>Persistent Faces Servlet</servlet-name> …</servlet-mapping><servlet> <servlet-name>Blocking Servlet</servlet-name> <servlet-class>com.icesoft.faces.webapp.xmlhttp.BlockingServlet</servlet-class></servlet><servlet-mapping> <servlet-name>Blocking Servlet</servlet-name> <url-pattern>/block/*</url-pattern></servlet-mapping> www.icefaces.org | www.mimacom.com
  15. 15. Actualizando de ICEfaces 1.8 a 2.0Paso 3, actualización de web.xml…2. También eliminamos el listener ContextEventRepeater <listener> <listener-class>com.icesoft.faces.util.event.servlet.ContextEventRepeater</listener-class> </listener>3. Añadimos el servlet ICEfaces Compat Resources: • Nuevo servlet y mapeo: <servlet> <servlet-name>Resource Servlet</servlet-name> <servlet-class>com.icesoft.faces.webapp.CompatResourceServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Resource Servlet</servlet-name> <url-pattern>/xmlhttp/*</url-pattern> </servlet-mapping> www.icefaces.org | www.mimacom.com
  16. 16. Actualizando de ICEfaces 1.8 a 2.0Paso 3, actualización de web.xml…3. Nos aseguramos que disponemos del Faces Servlet y mapeos: • Servlet y mapeos: <servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>*.jsf</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>/icefaces/*</url-pattern> </servlet-mapping> www.icefaces.org | www.mimacom.com
  17. 17. Actualizando de ICEfaces 1.8 a 2.0 Paso 3, actualización de web.xml… 3. Cambiamos los parámetros de contexto: Parámetros antiguos Nuevos parámetros Valores Por defecto Antiguo por defectofacelets.LIBRARIES javax.faces.FACELETS_LIBRARIESn/a javax.faces.VALIDATE_EMPTY_FIELDS true/falsejavax.faces.STATE_SAVING_METHOD Sin cambios server/clientjavax.faces.CONFIG_FILES Sin cambiosjavax.faces.DEFAULT_SUFFIX Sin cambios *.jsp -> *.xhtml www.icefaces.org | www.mimacom.com
  18. 18. Actualizando de ICEfaces 1.8 a 2.0Paso 4, actualizamos index.jspCambiamos la extensión *.iface por *.jsf <jsp:forward page="applicantForm.jsf" /> www.icefaces.org | www.mimacom.com
  19. 19. Actualizando de ICEfaces 1.8 a 2.0Paso 4, actualizamos los archivos xhtml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:icecore="http://www.icefaces.org/icefaces/core" xmlns:ace="http://www.icefaces.org/icefaces/components" xmlns:ice="http://www.icesoft.com/icefaces/component"> <h:head> <title>Job Application</title> <ice:outputStyle href="./xmlhttp/css/xp/xp.css" /> </h:head> <h:body> … </h:body> </html> www.icefaces.org | www.mimacom.com
  20. 20. Actualizando de ICEfaces 1.8 a 2.0Paso 4, actualizamos los archivos xhtmlReemplazamos la <ice:outputDeclaration> por:<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> www.icefaces.org | www.mimacom.com
  21. 21. Actualizando de ICEfaces 1.8 a 2.0Paso 5, cambiamos los componentes que se actualizan<ice:inputFile> se cambia por <ace:fileEntry><ace:fileEntry id="resume" label="File Upload" relativePath="uploaded" fileEntryListener="#{resumeUploader.actionListener}"/><h:commandButton id="fileUploadButton" value="Upload"/><tr><td><ice:outputProgress value="#{resumeUploader.fileProgress}"labelComplete="#{resumeUploader.currentFile.fileName}" /></td></tr>Eliminamos el servlet de subida de ficheros antiguo<servlet> <servlet-name>uploadServlet</servlet-name> <servlet-class>com.icesoft.faces.component.inputfile.FileUploadServlet</servlet-class> <load-on-startup>1</load-on-startup></servlet><servlet-mapping> <servlet-name>uploadServlet</servlet-name> <url-pattern>/uploadHtml</url-pattern></servlet-mapping> www.icefaces.org | www.mimacom.com
  22. 22. Actualizando de ICEfaces 1.8 a 2.0Paso 5, cambiamos los componentes que se actualizanActualizamos el bean FileUploaderpackage training.jobapplication.bean.util;import org.icefaces.component.fileentry.FileEntry;import org.icefaces.component.fileentry.FileEntryEvent;import org.icefaces.component.fileentry.FileEntryResults;public class FileUploader {private FileEntryResults.FileInfo currentFile;public FileEntryResults.FileInfo getCurrentFile() {return currentFile;}public void actionListener(FileEntryEvent event) {FileEntry fileEntry = (FileEntry) event.getSource(); FileEntryResults results = fileEntry.getResults(); for (FileEntryResults.FileInfo fileInfo : results.getFiles()) { if (fileInfo.isSaved()) { currentFile = fileInfo; } }}} www.icefaces.org | www.mimacom.com
  23. 23. Actualizando de ICEfaces 1.8 a 2.0Paso 6, actualización de APIs de Ajax PushLlamadas de Ajax Push que se actualizanRenderManagerOnDemandRendererIntervalRendererDelayedRendererPushRenderer.addCurrentView();PushRenderer.addCurrentSession();PushRenderer.render(String); www.icefaces.org | www.mimacom.com
  24. 24. Actualizando de ICEfaces 1.8 a 2.0Paso 6, actualizamos reglas de navegación de JSF 2Las reglas ya no se necesitan en faces-config.xml<navigation-rule> <from-view-id>/applicantForm.xhtml</from-view-id> <navigation-case> <from-outcome>success</from-outcome> <to-view-id>/thankYou.iface</to-view-id> </navigation-case> <navigation-case> <from-outcome>failure</from-outcome> <to-view-id>/noThanks.iface</to-view-id> </navigation-case></navigation-rule>public String submit() { return "thankYou?faces-redirect=true";}Actualizamos las navegaciones en las páginas .xhtml. www.icefaces.org | www.mimacom.com
  25. 25. Actualizando de ICEfaces 1.8 a 2.0Paso 7, cambiamos Partial Submit por Single SubmitPartial Submit todavía funciona pero Single Submit es más eficiente<h:form id="applicantForm"> <icecore:singleSubmit/> www.icefaces.org | www.mimacom.com
  26. 26. ¡Muchas Gracias!A continuación: • Breve visión de Mimacom • Turno de preguntas y respuestas www.icefaces.org | www.mimacom.com
  27. 27. mimacom • ¿Qué ofrece mimacom? – Training, Soporte y servicios para los siguientes frameworks: – ICEfaces (icefaces.org) – PortletFaces (portletfaces.org) – Liferay (liferay.com) – edoras-framework (edorasframework.org) – Spring-Framework (springframework.org) www.icefaces.org | www.mimacom.com
  28. 28. mimacom edoras path Methodology Tool Chain Technology / Frameworks Complete Application Lifecyle Management (ALM) Know-How transfer www.icefaces.org | www.mimacom.com
  29. 29. mimacom Scrum www.icefaces.org | www.mimacom.com
  30. 30. mimacom Version Control Build System Knowledge-Mngmt Subversion Maven 2 Code Reviews Confluence Crucible Continuous Development Integration Eclipse (IDE) Bamboo Issue – Tracker (Requirements, Bugs, Changes, etc.) JIRA Toolchain www.icefaces.org | www.mimacom.com
  31. 31. ContactoEl enlace a las transparencias y ejemplos expuestos en el Webinar será suministrado vía: Blog: http://blog.mimacomiberica.es Twitter: @icefaces_espana Facebook: Mimacom Ibérica ICEfaces Hispano Email: jose.antonio.alvarez@mimacom.com jfclercx@mimacom.com www.icefaces.org | www.mimacom.com
  32. 32. Contacto Contact mimacom: Contact ICESoft: Tel: +34 963524125 Toll Free: +1 877 263 3822 USA info@mimacomiberica.es International: +1 403 663 3322 Skype: jfclercx product.support@icesoft.comICESOFT TECHNOLOGIES INC www.icefaces.org | www.mimacom.com Slide: 31
  33. 33. Turno de preguntas • ¿Preguntas? – Por favor escriban sus preguntas en la ventana “Question and Answer” en la parte inferior derecha de su pantalla – Las respuestas a las preguntas que no puedan tratarse en esta sesión serán enviadas por correo electrónico www.icefaces.org | www.mimacom.com
  34. 34. Links • Home: – http://www.icefaces.org • Forums: – http://www.icefaces.org/JForum/ • ICEpack: – http://www.icefaces.org/main/ajax-java/icepack.iface • Tutorials: – http://www.icefaces.org/main/resources/tutorials.iface • Documentation: – http://www.icefaces.org/main/resources/documentation.iface www.icefaces.org | www.mimacom.com

×