portletfaces y portletfaces bridge: integrando jsf, icefaces y liferay
DESCRIPTION
TRANSCRIPT
www.icefaces.orgFor audio, please dial Toll Free: 1+866 222 0259
International: +1 416 915 8403
Access Code: 2220271
webinar presented by:
www.icefaces.orgFor audio, please dial Toll Free: 1+866 222 0259
International: +1 416 915 8403
Access Code: 2220271
Dial-in if required : +41 (0) 415 0008 65 Access code 935-074-787 www.icefaces.org | www.mimacom.comWednesday, January 19, 2011
ICESOFT TECHNOLOGIES INC
Slide: 1
PortletFaces Tools y PortletFaces Bridge:Integrando JSF y Liferay
ICESOFT TECHNOLOGIES INC www.icefaces.org
José Antonio Á[email protected]
+
www.icefaces.orgFor audio, please dial Toll Free: 1+866 222 0259
International: +1 416 915 8403
Access Code: 2220271
Dial-in if required : +41 (0) 415 0008 65 Access code 935-074-787 www.icefaces.org | www.mimacom.com
• Edoras Framework
• PortletFaces Tools + JSF 1.2
• Introducción, historia, ventajas
• Ciclo de vida Portlet vs Ciclo de vida JSF
• PortletFaces Tools + ICEfaces 1.8.x
• Mejoras en la integración con Liferay
• Ciclo de vida con ICEfaces
• PortletFaces Bridge + JSF 2.0/ICEfaces 2
• Características de JSF 2.0 e ICEfaces 2
• Resumen y turno de preguntas
Índice
www.icefaces.orgFor audio, please dial Toll Free: 1+866 222 0259
International: +1 416 915 8403
Access Code: 2220271
Dial-in if required : +41 (0) 415 0008 65 Access code 935-074-787 www.icefaces.org | www.mimacom.com
…Y más módulos y características útiles
edoras framework es una coleccion de módulos y código de interconexiónorientado al desarrollo de aplicaciones empresariales
• Open Source
• Estándares JPA, JSF, y JSR-286 (Portales)
• Combina Spring, ICEfaces y Liferay
• Uso de Maven 2 para labores de compilación y manejo
de dependencias
• Full Web Application Stack
• Módulos más populares
• Motor de Procesos y Sistema de Workflows
• Ámbitos Extendidos (Parte de Spring 3.1)
• PortletFaces y PortletBridge
¿Qué es edoras framework?
www.icefaces.orgFor audio, please dial Toll Free: 1+866 222 0259
International: +1 416 915 8403
Access Code: 2220271
Dial-in if required : +41 (0) 415 0008 65 Access code 935-074-787 www.icefaces.org | www.mimacom.com
Liferay Portal es una solución que permite crear de manera sencilla portalesweb, proporcionando facilidades para la publicación de contenido así comopara la colaboración entre usuarios
¿Qué es Liferay Portal?
• Es un contenedor de Portlets
• Open Source. Desarrollado en Java
• Posee un sistema de gestión de contenidos (CMS)
• Más de 60 portlets incluidos de serie– Wiki, Foros, Calendarios compartidos...
• De los primeros portales en dar soporte a Portlets en JSF (Mayo 2005)
www.icefaces.orgFor audio, please dial Toll Free: 1+866 222 0259
International: +1 416 915 8403
Access Code: 2220271
Dial-in if required : +41 (0) 415 0008 65 Access code 935-074-787 www.icefaces.org | www.mimacom.com
PortletFaces Tools Project
• El propósito del proyecto es hacer más fácil el desarrollode portlets JSF 1.2 (e ICEfaces 1.8.x) sobre Liferay Portal
• Website: http://www.portletfaces.org/projects/portletfaces-tools
• Versión actual : 1.3.0 GA (General Availability)
www.icefaces.orgFor audio, please dial Toll Free: 1+866 222 0259
International: +1 416 915 8403
Access Code: 2220271
Dial-in if required : +41 (0) 415 0008 65 Access code 935-074-787 www.icefaces.org | www.mimacom.com
PortletFaces Tools – Historia
• Fundado por Joel Kozikowski y Neil Griffin
• Originalmente promovido por Liferay, Inc. en modo de incubación
• Mimacom AG asumió el control desde la incubación y actualmente es un subproyecto de edoras framework
• Contribuyentes notables:
Micha Kiener, Atul Patel, Ed Shin, Stefan Niederhauser
www.icefaces.orgFor audio, please dial Toll Free: 1+866 222 0259
International: +1 416 915 8403
Access Code: 2220271
Dial-in if required : +41 (0) 415 0008 65 Access code 935-074-787 www.icefaces.org | www.mimacom.com
PortletFaces Tools – Ventajas
• Tanto las características estándar de la API Portlet 2.0 y otras específicas de Liferay se proporcionan de un modonatural para desarrolladores JSF.– Acceso a preferencias del portlet vía Expression Language
– Access a objetos de Liferay vía Expression Language
• Integración mejorada ICEfaces-Liferay
• Interfaz integrada con el tema de Liferay
• Carga de archivos para portlets estándar JSF
www.icefaces.orgFor audio, please dial Toll Free: 1+866 222 0259
International: +1 416 915 8403
Access Code: 2220271
Dial-in if required : +41 (0) 415 0008 65 Access code 935-074-787 www.icefaces.org | www.mimacom.com
Mejoras sobre FacesContext
• Se proporciona la clase PortletFacesContext, que heredade FacesContext, añadiendo más funcionalidades:
public class BackingBean {
private PortletFacesContext portletFacesContext =
PortletFacesContext.getInstance();
public void actionListener(ActionEvent e) {
// Get the current Liferay User„s email address
User user = portletFacesContext.getUser();
String emailAddress = user.getEmailAddress();
}
}
www.icefaces.orgFor audio, please dial Toll Free: 1+866 222 0259
International: +1 416 915 8403
Access Code: 2220271
Dial-in if required : +41 (0) 415 0008 65 Access code 935-074-787 www.icefaces.org | www.mimacom.com
Mejoras sobre Expression Language
• PortletFaces permite el acceso a preferencias del portlet(JSR 286) desde EL (Expression Language)
• Compatible con partialSubmit de ICEfaces
<ice:inputText
id="datePattern”
partialSubmit=“true”
value="#{portletPreference['datePattern']}" />
<ice:commandButton
actionListener="#{portletPreferencesForm.submit}”
value="#{i18n['submit']}" />
www.icefaces.orgFor audio, please dial Toll Free: 1+866 222 0259
International: +1 416 915 8403
Access Code: 2220271
Dial-in if required : +41 (0) 415 0008 65 Access code 935-074-787 www.icefaces.org | www.mimacom.com
Mejoras sobre Expression Language (II)
• PortletFaces proporciona acceso a información específicade Liferay desde EL
<h:outputLabel
for="postalCode" value="#{i18n['zip-postal']}" />
<img
src="#{liferay.themeImageURL['/common/help.png']}"
title="#{i18n['postal-code-hint']}" />
<a href="mailto:#{liferay.user.emailAddress}" />
www.icefaces.orgFor audio, please dial Toll Free: 1+866 222 0259
International: +1 416 915 8403
Access Code: 2220271
Dial-in if required : +41 (0) 415 0008 65 Access code 935-074-787 www.icefaces.org | www.mimacom.com
Carga de Archivos
• Con JSF 1.0-2.0 no se proporciona un componenteestándar de subida de ficheros
• PortletFaces soluciona el problema proporcionando el componente pf:inputFile
<pf:inputFile value=“#{modelBean.file}”>
www.icefaces.orgFor audio, please dial Toll Free: 1+866 222 0259
International: +1 416 915 8403
Access Code: 2220271
Dial-in if required : +41 (0) 415 0008 65 Access code 935-074-787 www.icefaces.org | www.mimacom.com
Ciclos de vida JSF/Portlet
¿Pero cómo adapto el ciclo de vida de JSF al ciclo de vida de un Portlet?
Solución: JSF Portlet Bridges
www.icefaces.orgFor audio, please dial Toll Free: 1+866 222 0259
International: +1 416 915 8403
Access Code: 2220271
Dial-in if required : +41 (0) 415 0008 65 Access code 935-074-787 www.icefaces.org | www.mimacom.com
Ciclos de vida JSF/Portlet
JSF Portlet Bridges:
Hacen de puente entre los ciclos de vida JSF y Portlet
¿Cómo se definen?
En WEB-INF/portlet.xml. Por ejemplo para Sun OpenPortalJSF Bridge:
<portlet-class>com.sun.faces.portlet.FacesPortlet
</portlet-class>
Sun OpenPortal JSF Bridge soporta Portlet API 1.0 y 2.0,JSF 1.1 y 1.2 (Mojarra)
www.icefaces.orgFor audio, please dial Toll Free: 1+866 222 0259
International: +1 416 915 8403
Access Code: 2220271
Dial-in if required : +41 (0) 415 0008 65 Access code 935-074-787 www.icefaces.org | www.mimacom.com
Ciclos de vida JSF/Portlet – Petición HTTP GET
RENDER_PHASE del Ciclo de vida Portlet
RESTORE VIEWAPPLY REQUEST
VALUESPROCESS
VALIDATIONS
UPDATE MODEL VALUES
INVOKE APPLICATION
RENDER RESPONSE
Ciclo de vida JSF
www.icefaces.orgFor audio, please dial Toll Free: 1+866 222 0259
International: +1 416 915 8403
Access Code: 2220271
Dial-in if required : +41 (0) 415 0008 65 Access code 935-074-787 www.icefaces.org | www.mimacom.com
Ciclos de vida JSF/Portlet – Petición HTTP POST
ACTION_PHASE del Ciclo de vida Portlet
RESTORE VIEWAPPLY REQUEST
VALUESPROCESS
VALIDATIONS
UPDATE MODEL VALUES
INVOKE APPLICATION
RENDER RESPONSE
Ciclo de vida JSF
www.icefaces.orgFor audio, please dial Toll Free: 1+866 222 0259
International: +1 416 915 8403
Access Code: 2220271
Dial-in if required : +41 (0) 415 0008 65 Access code 935-074-787 www.icefaces.org | www.mimacom.com
Peticiones en Portlets
• Aunque las páginas de un Portal pueden contener variosPortlets, sólo un Portlet participará en el evento de envíodel formulario.
• El envío de un formulario en un Portlet obliga al resto de Portlets a renderizarse de nuevo.
– ¡Pueden perderse valores introducidos por el usuario en el resto de Portlets!
• La experiencia de usuario puede verse afectada por estecomportamiento.
www.icefaces.orgFor audio, please dial Toll Free: 1+866 222 0259
International: +1 416 915 8403
Access Code: 2220271
Dial-in if required : +41 (0) 415 0008 65 Access code 935-074-787 www.icefaces.org | www.mimacom.com
¿Qué aporta el uso de ICEfaces?
www.icefaces.orgFor audio, please dial Toll Free: 1+866 222 0259
International: +1 416 915 8403
Access Code: 2220271
Dial-in if required : +41 (0) 415 0008 65 Access code 935-074-787 www.icefaces.org | www.mimacom.com
Integración mejorada ICEfaces-Liferay
• El ICEfaces 1.x Portlet Bridge sólo participa en la faseRENDER_PHASE del ciclo de vida de un portlet
• Una vez que finaliza, toda la interacción con el servidor se hace por medio de Ajax. Esto previene recargas completasde la página que alteran la experiencia de usuario
• Las futuras versiones harán uso de la faseRESOURCE_PHASE presente en la especificación Portlet2.0
www.icefaces.orgFor audio, please dial Toll Free: 1+866 222 0259
International: +1 416 915 8403
Access Code: 2220271
Dial-in if required : +41 (0) 415 0008 65 Access code 935-074-787 www.icefaces.org | www.mimacom.com
Ciclos de vida ICEfaces/Portlet – Petición HTTP GET
Se ejecuta la fase de Portlet RENDER_PHASE, pero después ICEfaces toma el control y todo cambio se realiza incrementalmente a través del Ajax Bridge. No se realiza un Http Post, evitando una recarga total de la página
www.icefaces.orgFor audio, please dial Toll Free: 1+866 222 0259
International: +1 416 915 8403
Access Code: 2220271
Dial-in if required : +41 (0) 415 0008 65 Access code 935-074-787 www.icefaces.org | www.mimacom.com
Integración mejorada (II)
• El desarrollo de portlets para Liferay normalmenterequiere el uso de dos objetos comúnmente usados:
– PermissionChecker
– ThemeDisplay
• Desgraciadamente, después de RENDER_PHASE, Liferayrecicla estos objetos y están disponibles para el recolectorde basura de la JVM
• PortletFaces permite el acceso a estos objetos para su usomediante ICEfaces
www.icefaces.orgFor audio, please dial Toll Free: 1+866 222 0259
International: +1 416 915 8403
Access Code: 2220271
Dial-in if required : +41 (0) 415 0008 65 Access code 935-074-787 www.icefaces.org | www.mimacom.com
Integración mejorada (III)
• Durante la RENDER_PHASE inicial PortletFaces hace unacopia de PermissionChecker y ThemeDisplay y lasalmacena en el ámbito extendido de ICEfaces
• Con ello se permite el uso de estas instancias en cualquiermomento a través de la clase PortletFacesContext:
PermissionChecker permissionChecker =
portletFacesContext.getPermissionChecker();
ThemeDisplay themeDisplay =
portletFacesContext.getThemeDisplay();
www.icefaces.orgFor audio, please dial Toll Free: 1+866 222 0259
International: +1 416 915 8403
Access Code: 2220271
Dial-in if required : +41 (0) 415 0008 65 Access code 935-074-787 www.icefaces.org | www.mimacom.com
¿Y JSF 2.0?
• JSF 2.0 + Portlet 1.0– Debido a las nuevas características Ajax en JSF 2.0, no es posible
integrar ambas tecnologías de una manera estándar
• JSF 2.0 + Portlet 2.0– Aún no se ha decidido si se establecerá un JSR para definir un
estándar para JSF 2.0 y Portlet 2.0
– Actualmente podemos usar:
www.icefaces.orgFor audio, please dial Toll Free: 1+866 222 0259
International: +1 416 915 8403
Access Code: 2220271
Dial-in if required : +41 (0) 415 0008 65 Access code 935-074-787 www.icefaces.org | www.mimacom.com
PortletFaces Bridge
• Permite el despliegue de portlets JSF 2.0 dentro de contenedores Portlet 2.0 como Liferay Portal
• También permite el uso de portlets ICEfaces 2.0
• Actualmente en versión 2.0.0-Beta 3. La versión GA seráliberada después de ICEfaces 2.0 GA
• Website: http://www.portletfaces.org/projects/portletfaces-bridge
www.icefaces.orgFor audio, please dial Toll Free: 1+866 222 0259
International: +1 416 915 8403
Access Code: 2220271
Dial-in if required : +41 (0) 415 0008 65 Access code 935-074-787 www.icefaces.org | www.mimacom.com
Nuevas características de JSF 2.0
• Estándar de Anotaciones Java:– @ManagedBean
– @RequestScoped
– @SessionScoped
– @ApplicationScoped
– @ManagedProperty
Las anotaciones permiten definir los managed beans en las mismasclases Java, simplificando el archivo faces-config.xml.
www.icefaces.orgFor audio, please dial Toll Free: 1+866 222 0259
International: +1 416 915 8403
Access Code: 2220271
Dial-in if required : +41 (0) 415 0008 65 Access code 935-074-787 www.icefaces.org | www.mimacom.com
Nuevas características de JSF 2.0 (II)
• Estándar de Ajax:– Envío parcial de formularios mediante librería Javascript (jsf.js)
– Actualizaciones (render) parciales automáticas hacia el DOM del navegador
• Nuevo ámbito View (@ViewScoped)
• El Controlador de Vista estándar es Facelets– Permite Componentes custom sin código Java
• Controlador de recursos estándar– Permite empaquetar recursos para los componentes sin apenas
configuración
www.icefaces.orgFor audio, please dial Toll Free: 1+866 222 0259
International: +1 416 915 8403
Access Code: 2220271
Dial-in if required : +41 (0) 415 0008 65 Access code 935-074-787 www.icefaces.org | www.mimacom.com
PortletFaces Bridge + JSF 2.0
• JSF 2.0 Ajax– Permite el acceso total a la Portlet API a los desarrolladores JSF
• JSF 2.0 Resources– El ‘bridge’ hace uso de la fase RESOURCE_PHASE para:
• Librerías JavaScript
• Archivos CSS
• Archivos de imagen
www.icefaces.orgFor audio, please dial Toll Free: 1+866 222 0259
International: +1 416 915 8403
Access Code: 2220271
Dial-in if required : +41 (0) 415 0008 65 Access code 935-074-787 www.icefaces.org | www.mimacom.com
PortletFaces Bridge + ICEfaces 2
• ICEfaces 2 usa el mecanismo estándar jsf.js para llamadasAjax– ICEfaces 1.8 usaba un Servlet (incluso ejecutándose como portlet)
para la comunicación Ajax
• Portlets de ICEfaces desplegados con PortletFaces Bridge aprovechan la fase RESOURCE_PHASE de Portlet 2.0
• Los desarrolladores tienen acceso total a la Portlet API durante el ciclo de vida del portlet, incluso con Ajax Push!
www.icefaces.orgFor audio, please dial Toll Free: 1+866 222 0259
International: +1 416 915 8403
Access Code: 2220271
Dial-in if required : +41 (0) 415 0008 65 Access code 935-074-787 www.icefaces.org | www.mimacom.com
Resumen PortletFaces Bridge
• Nuevo proyecto Open Source
• Permite a los desarrolladores crear y desplegar JSF 2.0 e ICEfaces 2 portlets en portales que cumplen el estándarPortlet 2.0 como Liferay 5.x/6.x
• La versión GA será liberada poco después de ICEfaces 2 GA
www.icefaces.orgFor audio, please dial Toll Free: 1+866 222 0259
International: +1 416 915 8403
Access Code: 2220271
Dial-in if required : +41 (0) 415 0008 65 Access code 935-074-787 www.icefaces.org | www.mimacom.com
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.orgFor audio, please dial Toll Free: 1+866 222 0259
International: +1 416 915 8403
Access Code: 2220271
Dial-in if required : +41 (0) 415 0008 65 Access code 935-074-787 www.icefaces.org | www.mimacom.com
mimacom
Complete Application Lifecyle Management (ALM) Know-How transfer
edoras path
Methodology
Technology / Frameworks
Tool Chain
www.icefaces.orgFor audio, please dial Toll Free: 1+866 222 0259
International: +1 416 915 8403
Access Code: 2220271
Dial-in if required : +41 (0) 415 0008 65 Access code 935-074-787 www.icefaces.org | www.mimacom.com
mimacom
Scrum
www.icefaces.orgFor audio, please dial Toll Free: 1+866 222 0259
International: +1 416 915 8403
Access Code: 2220271
Dial-in if required : +41 (0) 415 0008 65 Access code 935-074-787 www.icefaces.org | www.mimacom.com
mimacom
Toolchain
DevelopmentEclipse (IDE)
Version ControlSubversion
Build SystemMaven 2
Continuous IntegrationBamboo
Issue – Tracker (Requirements, Bugs, Changes, etc.)JIRA
Co
de
Rev
iew
sC
ruci
ble
Kn
ow
led
ge-M
ngm
tC
on
flu
ence
www.icefaces.orgFor audio, please dial Toll Free: 1+866 222 0259
International: +1 416 915 8403
Access Code: 2220271
Dial-in if required : +41 (0) 415 0008 65 Access code 935-074-787 www.icefaces.org | www.mimacom.com
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ánenviadas por correo electrónico
www.icefaces.orgFor audio, please dial Toll Free: 1+866 222 0259
International: +1 416 915 8403
Access Code: 2220271
Dial-in if required : +41 (0) 415 0008 65 Access code 935-074-787 www.icefaces.org | www.mimacom.com
Contacto
El enlace a las transparencias y ejemplos expuestos en el
Webinar será suministrado vía:
Blog: http://blog.mimacomiberica.es
Twitter: @icefaces_espana
Email: [email protected]
www.icefaces.orgFor audio, please dial Toll Free: 1+866 222 0259
International: +1 416 915 8403
Access Code: 2220271
Contacto
ICESOFT TECHNOLOGIES INC
Slide: 35
Contact ICESoft:Toll Free: +1 877 263 3822 USAInternational: +1 403 663 [email protected]
Contact mimacom:Tel: +34 [email protected]: jfclercx