36
www.icefaces.org For audio, please dial Toll Free: 1+866 222 0259 International: +1 416 915 8403 Access Code: 2220271 webinar presented by:

PortletFaces y PortletFaces Bridge: Integrando JSF, ICEfaces y Liferay

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: PortletFaces y PortletFaces Bridge: Integrando JSF, ICEfaces y Liferay

www.icefaces.orgFor audio, please dial Toll Free: 1+866 222 0259

International: +1 416 915 8403

Access Code: 2220271

webinar presented by:

Page 2: PortletFaces y PortletFaces Bridge: Integrando JSF, ICEfaces y Liferay

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]

+

Page 3: PortletFaces y PortletFaces Bridge: Integrando JSF, ICEfaces y Liferay

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

Page 4: PortletFaces y PortletFaces Bridge: Integrando JSF, ICEfaces y Liferay

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?

Page 5: PortletFaces y PortletFaces Bridge: Integrando JSF, ICEfaces y Liferay

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)

Page 6: PortletFaces y PortletFaces Bridge: Integrando JSF, ICEfaces y Liferay

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)

Page 7: PortletFaces y PortletFaces Bridge: Integrando JSF, ICEfaces y Liferay

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

Page 8: PortletFaces y PortletFaces Bridge: Integrando JSF, ICEfaces y Liferay

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

Page 9: PortletFaces y PortletFaces Bridge: Integrando JSF, ICEfaces y Liferay

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();

}

}

Page 10: PortletFaces y PortletFaces Bridge: Integrando JSF, ICEfaces y Liferay

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']}" />

Page 11: PortletFaces y PortletFaces Bridge: Integrando JSF, ICEfaces y Liferay

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}" />

Page 12: PortletFaces y PortletFaces Bridge: Integrando JSF, ICEfaces y Liferay

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}”>

Page 13: PortletFaces y PortletFaces Bridge: Integrando JSF, ICEfaces y Liferay

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

Page 14: PortletFaces y PortletFaces Bridge: Integrando JSF, ICEfaces y Liferay

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)

Page 15: PortletFaces y PortletFaces Bridge: Integrando JSF, ICEfaces y Liferay

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

Page 16: PortletFaces y PortletFaces Bridge: Integrando JSF, ICEfaces y Liferay

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

Page 17: PortletFaces y PortletFaces Bridge: Integrando JSF, ICEfaces y Liferay

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.

Page 18: PortletFaces y PortletFaces Bridge: Integrando JSF, ICEfaces y Liferay

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?

Page 19: PortletFaces y PortletFaces Bridge: Integrando JSF, ICEfaces y Liferay

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

Page 20: PortletFaces y PortletFaces Bridge: Integrando JSF, ICEfaces y Liferay

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

Page 21: PortletFaces y PortletFaces Bridge: Integrando JSF, ICEfaces y Liferay

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

Page 22: PortletFaces y PortletFaces Bridge: Integrando JSF, ICEfaces y Liferay

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();

Page 23: PortletFaces y PortletFaces Bridge: Integrando JSF, ICEfaces y Liferay

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:

Page 24: PortletFaces y PortletFaces Bridge: Integrando JSF, ICEfaces y Liferay

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

Page 25: PortletFaces y PortletFaces Bridge: Integrando JSF, ICEfaces y Liferay

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.

Page 26: PortletFaces y PortletFaces Bridge: Integrando JSF, ICEfaces y Liferay

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

Page 27: PortletFaces y PortletFaces Bridge: Integrando JSF, ICEfaces y Liferay

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

Page 28: PortletFaces y PortletFaces Bridge: Integrando JSF, ICEfaces y Liferay

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!

Page 29: PortletFaces y PortletFaces Bridge: Integrando JSF, ICEfaces y Liferay

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

Page 30: PortletFaces y PortletFaces Bridge: Integrando JSF, ICEfaces y Liferay

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)

Page 31: PortletFaces y PortletFaces Bridge: Integrando JSF, ICEfaces y Liferay

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

Page 32: PortletFaces y PortletFaces Bridge: Integrando JSF, ICEfaces y Liferay

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

Page 33: PortletFaces y PortletFaces Bridge: Integrando JSF, ICEfaces y Liferay

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

Page 34: PortletFaces y PortletFaces Bridge: Integrando JSF, ICEfaces y Liferay

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

Page 36: PortletFaces y PortletFaces Bridge: Integrando JSF, ICEfaces y Liferay

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