SlideShare a Scribd company logo
1 of 317
Características más
                            importantes de Liferay 6.1

                                         Liferay 6.1
                            La gestión avanzada de portales y las
                               tecnologías Java Empresariales



                                                  Viernes 8 de Junio de 2012
                                     Centro de Innovación del BBVA (Madrid)
                                                       Jesús Salinas Revelles

lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                               Índice

                      ‣ Introducción.

                      ‣ El panel de control.

                      ‣ Organizaciones y sitios web.

                      ‣ Usuarios y roles.

                      ‣ Trabajando con taxonomías.

                      ‣ Contenidos web.

                      ‣ Multimedia.

                      ‣ Plantillas.




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                               Índice

                      ‣ Flujos de trabajo.

                      ‣ Listas de datos dinámicas.

                      ‣ Redes sociales.

                      ‣ Campos personalizados.

                      ‣ OpenSocial.

                      ‣ Stage.

                      ‣ Configuración.




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                              Introducción

                      ‣ Pasamos a comentar a continuación algunas de las
                            funcionalidades más importantes que nos ofrece Liferay Portal
                            por defecto.

                      ‣ Son funcionalidades que puede aprender a configurar cualquier
                            usuario de la plataforma.




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                        El panel de control

                      ‣ Introducción.

                      ‣ La sección del usuario.

                      ‣ La sección Liferay.

                      ‣ La sección Portal.

                      ‣ La sección Servidor.




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                              Introducción

                      ‣ El panel de control es la herramienta de administración y
                            configuración del sistema.

                      ‣ Permite al usuario acceder a funcionalidades que ofrece la
                            plataforma en función de su role, es decir, el panel de control
                            es un área dentro del gestor que cambia en función de los
                            permisos que tiene cada usuario.

                      ‣ Para acceder a él, por defecto, se hace mediante la barra Ir a.




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                                     Introducción

                      ‣ Si eres administrador el panel de control tiene cuatro
                            secciones:
                            ‣   Cuenta de usuario, Liferay, Portal y Servidor.




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                             Introducción

                      ‣ Si eres editor la barra de administración es muy limitada y su
                            panel de control también.




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                            La sección del usuario




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                            La sección Liferay




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                      La sección Portal

                      ‣ Nos permite realizar todo tipo de tareas administrativas:




                                                       Esta sección nos permite
                                                       gestionar usuarios,
                                                       grupos de usuarios, etc




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                          La sección Portal
                                                  Este panel permite listar
                                                  todos los usuarios,
                      ‣ Gestión de usuarios:      añadir, buscar, etc.




                            Esta sección nos                Listado de usuarios
                            permite gestionar
                            usuarios, grupos de
                            usuarios, etc

lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                   La sección Servidor

                      ‣ En esta sección encontramos las siguientes opciones:




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                     Organizaciones y sitios web

                      ‣ Hasta la versión 6 de Liferay se manejan dos conceptos:

                            ‣   Organización y

                            ‣   Comunidad.

                      ‣ Para la versión 6.1 desaparece el concepto de Comunidad y
                            se incorpora el concepto de Sitio Web.




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                              Organización

                      ‣ Las organizaciones son colecciones de usuarios jerárquica.

                      ‣ Las organizaciones son recursos que pueden tener páginas.

                      ‣ Hay un tipo especial de organización llamado location, que
                            define donde se encuentra.

                      ‣ Las organizaciones son muy útiles para definir las jerarquías a
                            las que pertenecen los usuarios.




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                            Organización


                             Una organización es una
                             estructura jerárquica.




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                                        Organización

                      ‣ Por ejemplo: Se está utilizando Liferay para trabajar con una
                            gran organización. Si se quiere definir el usuario Antonio
                            Molina mediante el organigrama de la empresa. Se supone que
                            trabaja como ingeniero informático en la oficina de Sevilla, en
                            la división Sur, en el departamento de I+D+i. Este usuario
                            debe ser miembro de las siguientes organizaciones:
                            ‣   I+D+i.

                            ‣   División Sur.

                            ‣   Localización Sevilla.

                      ‣ Las organizaciones pueden formar parte de un sitio web.




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                        Organización

                      ‣ Los miembros de una organización SÓLO pueden ser
                            usuarios:




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                             Organización

                      ‣ Se pueden asignar roles de organización a una organización,
                            de tal forma que, todos los usuarios que pertenezcan a dicha
                            organización automáticamente tendrá esos roles:




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                               Sitio web

                      ‣ Como ya se ha comentado antes, el sitio web es la evolución
                            del antiguo concepto de comunidad:




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                            Sitio web

                      ‣ Para cada sitio web podemos realizar las siguientes
                            operaciones:




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                            Sitio web

                      ‣ Por ejemplo, se pueden gestionar los miembros de un sitio
                            web:




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                            Usuarios

                      ‣ Personas que acceden de alguna forma al portal que se quiere
                            desarrollar:




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                                      Usuarios

                      ‣ Los usuarios pueden acceder a los portales, los usuarios
                            pertenecen a organizaciones o sitios web. Pueden
                            agruparse de varias formas:
                            ‣   Miembros de organizaciones.

                            ‣   Pueden encontrarse dentro de grupos de usuarios.

                            ‣   Miembros de sitios web.

                      ‣ Los usuarios tienen asociados unos roles que definen qué
                            pueden y qué no pueden hacer en función de dónde se
                            encuentran.




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                                Usuarios

                      ‣ Los usuarios pueden acceder a los portales.

                      ‣ Los usuarios se organizan en grupos de usuarios.

                      ‣ Los usuarios pertenecen a organizaciones.

                      ‣ Las organizaciones pueden organizarse en jerarquías.

                      ‣ Los usuarios, grupos y organizaciones pueden pertenecer a
                            comunidades que tienen un interés común.




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                    Grupo de usuarios

                      ‣ Conjunto arbitrario de usuarios creado por un administrador.




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                   Grupo de usuarios

                      ‣ Sólo usuarios pueden ser miembros de un grupo:




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                         Grupo de usuarios

                      ‣ Un grupo de usuarios puede tener asociado un conjunto de
                            páginas.

                      ‣ Importante: un grupo de usuarios NO pueden tener
                            asociados roles.




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                             Equipos

                      ‣ Grupo de usuarios definido exclusivamente para un sitio web:




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                             Equipos

                      ‣ Se dan de alta usuarios dentro de un equipo:




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                                  Equipos

                      ‣ Una vez definido un equipo, se pueden definir permisos en las
                            aplicaciones del portal sobre estos (siempre sobre el sitio web
                            donde hayan sido definidos).




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                                         Roles

                      ‣ Identificador lógico que tiene asociado una serie de permisos.

                      ‣ Existen tres tipos:

                            ‣   Roles normales.

                            ‣   Roles de organización.

                            ‣   Roles de sitios.

                      ‣ Se les denomina role scopes. Estos roles se utilizan para
                            definir permisos dentro de un portal, organización o
                            comunidad.

                      ‣ Usuarios, comunidades y organizaciones pueden asociarse a
                            un determinado role.




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                  Trabajando con taxonomías

                      ‣ La gestión de categorías se realiza mediante el panel de
                            control, dentro de la sección Liferay:




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                  Trabajando con taxonomías

                      ‣ Se pueden crear nuevos vocabularios, por ejemplo, un
                            vocabulario para el portal del Empleado.

                      ‣ Se puede definir la visibilidad del vocabulario en función del
                            role del usuario.




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                             Trabajando con taxonomías

                      ‣ Se pueden crear categoría asociadas a un vocabulario




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                  Trabajando con taxonomías

                      ‣ La gestión de etiquetas se realiza mediante el panel de
                            control, dentro de la sección Liferay:




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                             Trabajando con taxonomías

                      ‣ Se pueden crear etiquetas:




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                 Trabajando con taxonomías

                      ‣ Como ya se ha comentado en la introducción, la clave de las
                            etiquetas es que pueden ser creadas por el usuario de forma
                            totalmente flexible y dinámica.




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                                 Contenidos web

                      ‣ La generación de contenidos web es uno de los elementos más
                            importantes dentro del concepto de portal, dado que permite,
                            a los gestores del portal y a los usuarios que acceden a él,
                            dotar de contenidos a la herramienta.

                      ‣ Liferay ofrece una serie de funcionalidades que permite
                            generar, revisar y mantener contenidos web de una forma
                            cómoda, flexible y avanzada:
                            ‣   Editor de contenidos web: WYSWYG.

                            ‣   Portlets auxiliares para el manejo de contenidos.

                            ‣   Integración con flujos de trabajo.

                            ‣   ...




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                         Contenidos web

                      ‣ Dentro de la sección Liferay podemos encontrar un enlace
                            llamado Contenidos Web:




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                          Contenidos web

                      ‣ Esta sección nos permite crear, editar, borrar y buscar
                            contenidos web.




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                           Contenidos web

                      ‣ La lista de portlets para la gestión de contenidos se encuentra
                            disponible mediante la opción Añadir de la barra superior, en la
                            opción Más:




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                              Contenidos web

                      ‣ Liferay permite crear contenidos web totalmente
                            personalizados.

                      ‣ De forma estándar, cuando se quiere crear contenidos web se
                            utiliza el portlet Contenido web accesible desde el panel de
                            control:




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                      Contenidos web

                      ‣ Hasta ahora no hemos tenido en cuenta:

                                  Las estructuras y las plantillas nos permitirán ofrecer valor
                                  añadido a la hora de definir nuevos contenidos web




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                Soporte a múltiples lenguajes

                      ‣ Liferay proporciona soporte a diferentes lenguajes, la gestión
                            de contenidos web no podía ser menos.

                      ‣ Podemos definir el mismo contenido web en diferentes
                            idiomas, de tal manera que si se cambia el idioma de
                            visualización de contenidos, cambia también el del contenido
                            web.

                      ‣ El proceso se realiza mediante una etiqueta llamada
                            localizado (en español).




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                            Soporte a múltiples lenguajes

                      ‣ Se crea un documento en inglés:




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                            Soporte a múltiples lenguajes

                      ‣ Posteriormente se edita:




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                Soporte a múltiples lenguajes

                      ‣ El documento se edita cambian el idioma en el que está
                            escrito:




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                               Multimedia

                      ‣ Documentos y Multimedia actúa como un disco compartido
                            virtual, con atributos y metadatos de fichero, versionado y
                            personalización de carpetas.

                      ‣ Los administradores pueden manejar carpetas y documentos,
                            cambiar los permisos y navegar por la biblioteca de
                            documentos.




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                                Multimedia

                      ‣ Interfaz de usuario innovadora, drag and drop, selección con
                            ratón.

                      ‣ Repositorio unificado: conecta a múltiples repositorios:
                            sharepoint, documentum, alfresco.

                      ‣ Previsualización de formatos estándares.

                      ‣ Definir nuevos tipos de documentos: los documentos tienen
                            características específicas: formulario visual para que el
                            usuario pueda incorporar.

                      ‣ Aplicación iphone.

                      ‣ Dropbox: Liferay Sync.




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                            Plantillas




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                       Flujos de trabajo

                      ‣ Configuración de los flujos de trabajo utilizados dentro de
                            Liferay:




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                              Listas de datos dinámicas

                      ‣ Esta nueva funcionalidad nos permite crear listas dinámicas:




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                              Listas de datos dinámicas

                      ‣ Se pueden definir los datos a manejar:




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                               Listas de datos dinámicas

                      ‣ El visor nos permite manejar dichas listas:




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                        Redes sociales

                      ‣ Introducción.

                      ‣ Blogs.

                      ‣ Calendario.

                      ‣ Wiki.

                      ‣ Foro.

                      ‣ Mail.

                      ‣ Proyectos de la comunidad.




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                               Introducción

                      ‣ Liferay portal proporciona un conjunto de aplicaciones
                            colaborativas que pueden usarse para construir comunidades
                            de usuarios para tus webs.

                      ‣ Todas estas aplicaciones comparten una apariencia común,
                            modelo de seguridad, etc.

                      ‣ Vamos a analizar cómo configurar y administrar blogs,
                            calendarios, chats,wikis, foros y correo electrónico.




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                                    Blogs

                      ‣ El término blog procede de web log, web diaria, en español
                            también conocido como bitácora.

                      ‣ No es más que una lista de entradas donde los usuarios
                            pueden asociar comentarios.

                      ‣ Un blog es un sitio web que recopila textos o artículos de uno
                            o varios autores, apareciendo primero el más reciente, a los
                            que los lectores pueden asociar comentarios.




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                                    Blogs

                      ‣ Liferay tiene un portlet llamado Blogs que permite
                            proporcionar un servicio de blogs para los usuarios de la web.

                      ‣ Asociado a este existe un segundo portlet llamado Blogs
                            Aggregator que recupera entradas de distintos y las organiza
                            en una lista.




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                                           Blogs

                      ‣ Portlet Blogs:

                            ‣   Sólo puede crearse una instancia por comunidad u organización.

                            ‣   Si se añade un portlet de este tipo a la página de una comunidad u
                                organización, se crea un blog compartido para los miembros de la
                                comunidad u organización.

                            ‣   Si se añade este portlet al espacio personal de un usuario sólo será para
                                el usuario.




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                                           Blogs

                      ‣ Portlet Blogs. Configuración:

                            ‣   Por defecto, sólo el dueño de la comunidad puede añadir entradas al blog.

                            ‣   Para modificar este comportamiento se deben cambiar los permisos
                                asociados.

                            ‣   Una vez solventados los problemas de permisos, el usuario podrá incluir
                                entradas en el blog haciendo click sobre el botón:




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                                Blogs

                      ‣ Portlet Blogs. Crear entradas:




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                                           Blogs

                      ‣ Agregador de blogs:

                            ‣   Te permite publicar entradas de diferentes bloggers en una página.




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                              Calendario

                      ‣ El portlet Agenda (Calendar portlet) es una solución de
                            calendario muy completa:




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                                Calendario

                      ‣ Se pueden incorporar eventos de diferentes tipos, recibir
                            alarmas vía email o sms, importar o exportar el calendario,
                            etc.

                      ‣ También se pueden importar y exportar calendarios en
                            formato ICS para usarlo en otras aplicaciones.

                      ‣ Los calendarios se pueden utilizar como calendarios
                            compartidos para una comunidad u organización, o como
                            calendarios personales. Esto se configura definiendo un
                            determinado ámbito dentro de la configuración del portlet:




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                                     Wiki

                      ‣ El portlet Wiki ofrece una aplicación Wiki con todas las
                            características que se esperan.




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                                   Foros

                      ‣ El portlet nos ofrece en la barra principal enlaces para acceder
                            a Mensajes recientes, Mis mensajes, etc.




                      ‣ Se pueden añadir nuevas categorías y crear nuevos hilos de
                            discusión.




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                                           Foros

                      ‣ Categorías:

                            ‣   Se pueden buscar y crear categorías dentro del foro, es una forma de
                                organizar el flujo de información.




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                               Foros

                      ‣ Asociados a cada categoría se crean hilos de discusión:




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                                           Foros

                      ‣ Mis mensajes:

                            ‣   Se puede localizar de una forma sencilla todos los mensajes que a creado
                                un usuario:




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                                            Foros

                      ‣ Mis suscripciones:

                            ‣   El usuario puede suscribirse a categorías. Se selecciona la categoría y
                                mediante el botón Acciones se marca la opción Suscribirse.




                            ‣   Una vez añadidas las suscripciones, en la pestaña Mis suscripciones
                                estarán disponibles para un acceso rápido.




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                              Foros

                      ‣ Mensajes recientes:




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                                    Mails

                      ‣ Cada usuario tiene la posibilidad de consultar su correo
                            electrónico previamente configurado o configurar nuevas
                            cuentas de correo electrónico. Para configurar una cuenta se
                            debe hacer click sobre la opción añadir cuenta de correo
                            electrónico:




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                       Mails

                      ‣ Por ejemplo:




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                            Vaadin Mail




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                            Proyectos de la comunidad




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                            Proyectos de la comunidad




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                     Campos personalizados

                      ‣ Existe un mecanismo para añadir nuevos campos a la
                            entidades que ya existen en el núcleo de Liferay sin necesidad
                            de modificar el modelo y sus servicios asociados.

                      ‣ Este mecanismo se conoce como Campos personalizados.

                      ‣ Desde el panel de control se puede acceder a la
                            funcionalidad que comentamos:




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                Campos personalizados

                      ‣ Seleccionando la opción Editar pueden añadirse campos:




                      ‣ Se debe definir una clave y un tipo de dato.




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                 Campos personalizados

                      ‣ Los tipos disponibles para la versión 6 de Liferay son:




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                                OpenSocial

                      ‣ Liferay Portal 6 ofrece un contenedor OpenSocial basado en
                            Shindig.

                      ‣ Gadgets OpenSocial permite incluir en nuestras aplicaciones
                            este tipo de aplicaciones.




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                                    OpenSocial

                      ‣ Por ejemplo:

                            ‣   http://www.labpixies.com/campaigns/todo/todo.xml

                            ‣   http://www.google.com/ig/modules/horoscope.xml




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                                                   Stage

                      ‣ Mecanismo muy interesante para poder actualizar los
                            contenidos de un determinado portal y pasarlo a producción
                            cuando sea necesario.

                      ‣ Este sistema ha evolucionado mucho en esta última versión.




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                            Configuración de un sitio web




lunes 11 de junio de 2012
Características más importantes de Liferay 6.1




                            Configuración de la plataforma




lunes 11 de junio de 2012
Estrategias de desarrollo
                                   avanzado

                                         Liferay 6.1
                            La gestión avanzada de portales y las
                               tecnologías Java Empresariales



                                                  Viernes 8 de Junio de 2012
                                     Centro de Innovación del BBVA (Madrid)
                                                       Jesús Salinas Revelles

lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                      Índice de contenidos

                      ‣ Introducción.

                      ‣ ¿Cuándo?

                      ‣ ¿Dónde?

                      ‣ Portal.

                      ‣ Plugin Portlets.

                      ‣ Plugin Ext.

                      ‣ Plugin Hook.




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                              Introducción

                      ‣ Liferay nos ofrece una serie de funcionalidades por defecto
                            que nos hacen la vida más fácil y que en muchos casos,
                            pueden encajar con los servicios que necesita nuestro cliente.

                      ‣ En muchas otras ocasiones esto no será posible, el
                            desarrollador tiene que incluir nueva funcionalidad en la
                            plataforma.

                      ‣ Capacidad de integración:

                      ‣ Nos ofrece diferentes estrategias para incorporar nuevas
                            funcionalidades dentro de la plataforma.




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                         Introducción



                                                                                     Gestores
                       Bases de datos                                              documentales



                            Motores de                                              Motores de
                                              Liferay Portal                         Informes
                             workflow


                                                                               Sistemas de gestión
                                ...
                                                                                     integral




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                                   Introducción

                      ‣ Liferay nos permite crear módulos/piezas software
                            apoyándonos en los frameworks JavaEE más conocidos:
                            ‣   Capa de presentación: Struts, JavaServer Faces, etc.

                            ‣   Capa de negocio: Spring Framework (POA, IoC, gestión de
                                transacciones).

                            ‣   Capa de persistencia: Hibernate, iBatis, etc.

                      ‣ También se puede trabajar con tecnología Servlet y JSP.

                      ‣ El desarrollador puede aprovechar su Know-How para crear
                            infinidad de aplicaciones que posteriormente podrán integrarse
                            en una plataforma común de forma sencilla y simple.




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                                  Introducción

                      ‣ Como ya se ha comentado antes, Liferay permite al
                            desarrollador crear nuevas funcionalidades utilizando
                            diferentes estrategias.

                      ‣ Estas estrategias de desarrollo deben conocerse, sabiendo cuál
                            elegir en cada momento.

                      ‣ Una mala decisión puede condicionar en gran medida el éxito
                            o el fracaso de un desarrollo. Éstas son:
                            ‣   Plugin Portlet.

                            ‣   Plugin Hook.

                            ‣   Plugin Ext.




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                                       ¿Cuándo?

                      ‣ Como ya se ha comentado antes, tenemos tres alternativas
                            cuando desarrollamos nuevas funcionalidades en Liferay:
                            ‣   Portlets: desarrollos nuevos que no tienen nada que ver con portlets
                                que ya existen en Liferay.

                            ‣   Hooks: modificaciones no muy profundas sobre el core del producto.

                            ‣   Ext: modificaciones profundas de la plataforma.




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                                        ¿Dónde?

                      ‣ Herramientas disponibles para desarrollar:

                            ‣   Eclipse Liferay IDE.

                            ‣   NetBeans.

                            ‣   Cualquier herramienta de desarrollo que trabaje con Java.




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                            ¿Dónde?




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                            ¿Dónde?

                      ‣ Trabajando con Plugin SDK




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                                   Portal

                      ‣ Un portal es una aplicación web que proporciona
                            personalización, autenticación, mecanismos para incorporar
                            contenidos en una página web y centraliza la capa de
                            presentación de un sistema de información.

                      ‣ Un portal debe tener características avanzadas para la
                            personalización de los contenidos de usuario.

                      ‣ Las páginas de un portal pueden estar formadas por los
                            contenidos generados por diferentes portlets.




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                                           Portal

                      ‣ Todas las características de un portal se apoyan en el siguiente
                            concepto:
                            ‣   Integrar diferentes aplicaciones en la misma pantalla.

                      ‣ El usuario interactúa con el portal y el portal interactúa con
                            diferentes aplicaciones de backend, integrándolas a todas en
                            una única ventana del navegador sobre la que el usuario
                            actúa.

                      ‣ Esta integración habitualmente se conoce como at the glass.




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                                             Portal

                      ‣ Analicemos las características más importantes de la definición
                            de portal:
                            ‣   Personalización de usuario: permite que el usuario personalice los
                                contenidos que ve en las páginas del portal.

                            ‣   Personalización del backend: permite al administrador personalizar un
                                determinado componente para un entorno específico.

                            ‣   Single sign on: el usuario tendrá que autenticarse una sola vez.

                            ‣   Incorporación de contenido:

                                ‣   Concepto de componente: permite que se desarrollen componentes que se
                                    puedan incorporar en el portal. Son como bloques de construcción.




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                         Plugin Portlet

                      ‣ Introducción.

                      ‣ ¿Qué es un portlet?

                      ‣ ¿Quién puede construir un portlet?

                      ‣ ¿Cómo se construye un portlet?




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                                Introducción

                      ‣ La tecnología Portlet va a permitir al desarrollador crear
                            componentes de interfaz de usuario intercambiables e
                            independientes para construir páginas en portales web.

                      ‣ Se basa en tecnología Java.

                      ‣ Java Community Process es el organismo que actúa como
                            mecanismo para desarrollar especificaciones técnicas
                            estándares para tecnologías Java.

                      ‣ Se ha encargado de definir la especificación estándar de
                            Portlets. Ésta explica cuáles son los requisitos que se deben
                            cumplir para crear aplicaciones que cumplan la especificación.
                            ‣   http://www.jcp.org




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                              Introducción

                      ‣ La web del JCP (Java Community Process) proporciona
                            información muy interesante sobre las distintas
                            especificaciones.

                      ‣ Éstas se organizan en documentos llamados Java Specification
                            Requests, habitualmente conocidos como JSRs.




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                                    Introducción

                      ‣ Existen dos versiones de la especificación Portlets, y se
                            conocen como:
                            ‣   JSR-168: Especificación de Portlets v 1.0

                            ‣   JSR-286: Especificación de Portlets v 2.0




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                        ¿Qué es un portlet?

                      ‣ Es una aplicación que genera una porción de contenido que
                            puede ser incluido dentro de la página de un portal:



             Ventana del
             portlet
                                                                                   Modos y estados
                                                                                   del portlets




                 Fragmento
                 de marcado




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                          ¿Qué es un portlet?

                      ‣ Es un componente web basado en tecnología Java que se
                            encarga de procesar peticiones y generar contenido dinámico:

                             ...
                             public class MiPortlet extends    GenericPortlet {
                                 private static final String   NORMAL_VIEW = "/normal.jsp";
                                 private static final String   MAXIMIZED_VIEW = "/
                                          maximized.jsp";
                                 private static final String   HELP_VIEW = "/help.jsp";
                                   private PortletRequestDispatcher normalView;
                                   private PortletRequestDispatcher maximizedView;
                                   private PortletRequestDispatcher helpView;
                                   public void doView( RenderRequest request, RenderResponse
                                            response )
                                      throws PortletException, IOException {
                                      if( WindowState.MINIMIZED.equals
                                            ( request.getWindowState() ) ) {
                                       !
                                          return;
                                      }
                             ...



lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                        ¿Qué es un portlet?

                      ‣ Los portales usan a los portlets como componentes de
                            interface de usuario intercambiables que proporcionan la capa
                            de presentación a un sistema de información.




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                        ¿Qué es un portlet?

                      ‣ El contenido generado por un portlet se llama fragmento y,
                            no es más que un trozo de código de marcado.

                      ‣ Estos fragmentos tienen que cumplir una serie de reglas para
                            que puedan agruparse con otros fragmentos para generar un
                            documento completo.

                      ‣ El contenido generado por un portlet se agrupa junto con el
                            contenido de otros portlets para crear la página de un portal.

                      ‣ El ciclo de vida de un portlet es controlado mediante el
                            contenedor de portlets.




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                                  ¿Qué es un portlet?

                      ‣ Estados de la ventana:

                            ‣   La ventana de un portlet se puede encontrar en diferentes estados. Los
                                estados por defectos son:

                                ‣   Normal.

                                ‣   Maximizado.

                                ‣   Minimizado.




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                            ¿Qué es un portlet?

                      ‣ Estados de la ventana:          Este botón hace que
                                                       la ventana pase a
                            ‣   Normal y minimizado:   estado minimizado

                                                                    Si de nuevo se hace
                                                                    click en este botón se
                                                                    vuelve al estado normal




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                            ¿Qué es un portlet?

                      ‣ Estados de la ventana:         Este botón hace que
                                                       la ventana pase a
                            ‣   Normal y maximizado:   estado maximizado


                                                                   Si se hace click en
                                                                   este botón se vuelve
                                                                   al estado normal




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                        ¿Quién puede construir un portlet?

                      ‣ Desarrolladores que conocen las tecnologías JavaEE core:
                            Servlets y JSP:
                            ‣   La especificación de Portlets es muy similar a la especificación de
                                Servlets.

                            ‣   Conocida una, conocidas todas.

                            ‣   Las especificación de Portlets trabaja con JSP para generar la vista.

                      ‣ Desarrolladores JavaEE que conocen Framework de desarrollo:

                            ‣   JavaServer Faces,

                            ‣   Struts,

                            ‣   etc.




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                            ¿Cómo se construye un portlet?

                      ‣ Creación de una clase que hereda de GenericPortlet:




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                ¿Cómo se construye un portlet?

                      ‣ Ejemplo:



                            ...

                            public class PortletBasico extends GenericPortlet{

                                ...

                            }




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                            ¿Cómo se construye un portlet?




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                    ¿Cómo se construye un portlet?

                      ‣ Renderización:

                            ‣   Como ya se ha comentado antes, esta clase abstracta implementa el
                                método render() de la interface Portlet y proporciona otros métodos en
                                los que delega la renderización del portlet en función del modo en el que
                                se encuentra.

                            ‣   Los modos de un portlet indican la función que está proporcionando en
                                cada momento. La especificación define tres modos:

                                ‣   view.

                                ‣   help.

                                ‣   edit.




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                    ¿Cómo se construye un portlet?

                      ‣ Renderización:

                            ‣   Sus métodos de renderización son:

                                ‣   doView(): método llamado por el método render cuando el portlet se
                                    encuentra en modo view.

                                ‣   doHelp(): método llamado por el método render cuando el portlet se
                                    encuentra en modo help.

                                ‣   doEdit(): método llamado por el método render cuando el portlet se encuentra
                                    en modo edit.




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                 ¿Cómo se construye un portlet?

                      ‣ Acciones:

                            ‣   El método processAction() debe redefinirse para construir la acción que
                                quiere desarrollar el portlet:

                                  public void processAction(ActionRequest request,
                                                            ActionResponse response)
                                  !   !     !     throws PortletException, IOException {

                                  !   // Se recuperan los parámetros de la petición
                                  !   String nombre = request.getParameter("nombre");
                                  !   String ruta = request.getParameter("ruta");
                                  !   String contenido = request.getParameter("contenido");

                                      ...
                                  }




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                 ¿Cómo se construye un portlet?

                      ‣ Acciones:

                            ‣   El contenedor de portlets llama al método processAction() para permitir
                                que el portlet procese una acción asociada a la petición.

                            ‣   Este método es invocado si la petición del cliente fue originada por una
                                URL creada mediante el método RenderResponse.createActionURL().




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                 ¿Cómo se construye un portlet?

                      ‣ Construyendo acciones en un portlet:

                            ‣   El método processAction() se ejecuta cada vez que un portlet tiene que
                                realizar una acción.

                            ‣   ¿Si tiene que ejecutar varias acciones? ¿el método processAction() tiene
                                que manejar todas las acciones?

                                 ...
                                 public void processAction(...){
                                   ...

                                     if(...){

                                     }else if(){

                                     }

                                     ...
                                 }




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                 ¿Cómo se construye un portlet?

                      ‣ Construyendo acciones en un portlet:

                            ‣   Gracias a la anotación @ProcessAction el portlet puede tener tantos
                                métodos diferentes como acciones tenga que llevar a cabo.
                                Evidentemente, la cabecera del método debe cumplir unos requisitos:

                                 @ProcessAction(name="guardarFichero")
                                 public void accion1(ActionRequest request,
                                                     ActionResponse response)
                                                            throws PortletException,IOException

                                 @ProcessAction(name="borrarFichero")
                                 public void accion2(ActionRequest request,
                                                     ActionResponse response)
                                                            throws PortletException,IOException




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                          Configuración

                      ‣ Fichero portlet.xml.

                      ‣ Fichero liferay-display.xml.

                      ‣ Fichero liferay-portlet.xml.

                      ‣ Fichero liferay-plugin-package.properties.




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                           Fichero portlet.xml

                      ‣ El descriptor de despliegue estándar para portlets se llama
                            portlet.xml.

                      ‣ Es un fichero xml que permite definir las características de los
                            portlets que se están manejando.

                      ‣ Ejemplo:

                              <?xml version="1.0" encoding="UTF-8"?>
                                <portlet-app
                                    xmlns="http://java.sun.com/xml/ns/portlet/portlet-
                                           app_1_0.xsd"
                                    version="1.0"
                                    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                                    xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/
                                           portlet-app_1_0.xsd
                                   http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd">

                                  <portlet>
                                    ...
                                 </portlet>
                               </portlet-app>


lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                  Fichero liferay-display.xml

                      ‣ Este fichero permite definir la categoría donde se podrán
                            encontrar el portlet dentro de Liferay una vez se despliegue.

                             <?xml version="1.0"?>
                             <!DOCTYPE display PUBLIC "-//Liferay//DTD Display 5.2.0//EN"
                             "http://www.liferay.com/dtd/liferay-display_5_2_0.dtd">

                               <display>                                  Identificador
                                                                          INTERNACIONALIZADO de la
                                 <category name=" category.sample ">      categoría donde se quiere
                                                                          incluir el portlet
                                   <portlet id=" PortletBasico01 " />

                                 </category>
                                                     El atributo id debe coincidir
                               </display>            con el nombre del portlet que
                                                     se ha definido en el fichero
                                                     portlet.xml




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                  Fichero liferay-display.xml




                            La categoría definida en
                            el fichero liferay-
                            display.xml determina la
                            categoría donde se podrá
                            encontrar




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                       Fichero liferay-portlet.xml

                      ‣ Este fichero es la extensión de portlet.xml para Liferay.

                      ‣ Se encarga de definir características avanzadas del portlet:

                            ‣   icon: define el icono que aparece en la ventana del portlet.

                            ‣   instanceable: si este elemento está a true significa que puede aparecer
                                en la página tantas veces como se quiera. En cambio si su valor es false,
                                sólo podrá aparecer una vez.

                            ‣   css-class-wrapper: nombre del class asociado al div que va a envolver
                                este portlet cuando se renderize en la página del portal.

                            ‣   header-portlet-css.

                            ‣   ...




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                 Fichero liferay-portlet.xml

                      ‣ Ejemplo:

                            <?xml version="1.0"?>
                            <!DOCTYPE liferay-portlet-app PUBLIC "-//Liferay//DTD Portlet
                            Application 5.2.0//EN" "http://www.liferay.com/dtd/liferay-
                            portlet-app_5_2_0.dtd">

                             <liferay-portlet-app>
                               <portlet>
                                 <portlet-name>PortletBasico01</portlet-name>
                                 <icon>/icon.png</icon>
                                 <instanceable>true</instanceable>
                                 <header-portlet-css>/css/test.css</header-portlet-css>
                                 <footer-portlet-javascript>/js/test.js</footer-portlet-
                                        javascript>
                               </portlet>
                             </liferay-portlet-app>




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                   Fichero liferay-plugin-
                                     package.properties

                            name=PortletBasico01
                            module-group-id=liferay
                            module-incremental-version=1
                            tags=
                            short-description=
                            change-log=
                            page-url=http://www.liferay.com
                            author=Liferay, Inc.
                            licenses=MIT




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                            Ejercicio

                      ‣ Paso 1: Listado de documentos.




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                            Ejercicio

                      ‣ Paso 2: Creación de documentos.




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                            Ejercicio




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                             Plugin Ext

                      ‣ Introducción.

                      ‣ Estrategia de desarrollo.

                      ‣ Trabajando con el entorno.

                      ‣ Despliegue del plugin Ext.




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                               Introducción

                      ‣ El plugin Extension es el plugin que proporciona un mayor
                            nivel de personalización del portal Liferay.

                      ‣ Se puede cambiar cualquier cosa del producto.

                      ‣ Plugin Ext ha sido creado para proporcionar una forma de
                            separar el código introducido por el programador y el código
                            de Liferay, de tal forma que los desarrolladores pueden saber
                            dónde empieza su código y dónde el de Liferay.

                      ‣ No se debe modificar el código de Liferay directamente para
                            realizar cambios en el producto. Se mantiene el código
                            separado y el plugin se encarga de solapara tus cambios
                            encima del código de Liferay.

                      ‣ Esto también hace que las actualizaciones de versión sean
                            más sencillas, dado que se puede actualizar Liferay y
                            posteriormente, inyectar el plugin Ext para la nueva versión.



lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                     Estrategia de desarrollo

                      ‣ La estrategia para usar este plugin es muy simple: extender,
                            no modificar.




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                               Trabajando con el entorno

                      ‣ Clase StrutsPortlet.

                      ‣ Fichero liferay-portlet.xml.

                      ‣ Definición de acciones.

                      ‣ Definición de la navegación.

                      ‣ Páginas JSP.




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                        Clase StrutsPortlet

                      ‣ Se encuentra en el paquete com.liferay.portlet.

                      ‣ Es el portlet diseñado por Liferay para integrar el Framework
                            Struts.

                      ‣ El fichero portlet.xml debe tenerlo en cuenta:

                            <?xml version="1.0"?>
                              <portlet-app xmlns="http://java.sun.com/xml/ns/portlet/
                                         portlet-app_2_0.xsd"version="2.0"
                                         xmlns:xsi="http://www.w3.org/2001/XMLSchema-
                                         instance"
                                         xsi:schemaLocation="http://java.sun.com/xml/ns/
                                         portlet/portlet-app_2_0.xsd http://java.sun.com/
                                         xml/ns/portlet/portlet-app_2_0.xsd">
                              <portlet>
                                <portlet-name>portletEjercicio</portlet-name>
                                <display-name>portletEjercicio</display-name>
                                <portlet-class>
                                         com.liferay.portlet.StrutsPortlet
                                </portlet-class>


lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                         Clase StrutsPortlet

                      ‣ Este portlet trabaja con parámetros iniciales que determinan
                            las urls asociadas a los modos VIEW, HELP y EDIT, si existen.

                      ‣ Se configuran en el fichero portlet.xml:

                             <portlet>
                             !   <portlet-name>ProyectoStruts</portlet-name>
                             !   <display-name>ProyectoStruts</display-name>
                             !   <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-
                                         class>
                             !   <init-param>
                             !   !     <name>view-action</name>
                             !   !     <value>/jsp/input</value>
                             !   </init-param>
                             !   <init-param>
                             !   !     <name>help-action</name>
                             !   !     <value>/jsp/help</value>
                             !   </init-param>
                             ...




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                Fichero liferay-portlet.xml

                      ‣ Se configura la ruta de Struts que se va a manejar:

                            <?xml version="1.0" encoding="ISO-8859-1"?>
                            <!DOCTYPE liferay-portlet-app PUBLIC "-//Liferay//DTD Portlet
                            Application 5.2.0//EN" "http://www.liferay.com/dtd/liferay-
                            portlet-app_5_2_0.dtd">
                            <liferay-portlet-app>
                              <portlet>
                                <portlet-name>ProyectoStruts</portlet-name>
                                <icon>/images/world.png</icon>
                                <struts-path>jsp</struts-path>
                                <use-default-template>true</use-default-template>
                                <restore-current-view>true</restore-current-view>
                                <instanceable>true</instanceable>
                                <private-request-attributes>false</private-request-
                                       attributes>
                              </portlet>
                            ...




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                      Definición de acciones

                      ‣ Las acciones son clases Java que heredan de PortletAction:

                             public class Accion01 extends PortletAction {

                                 @Override
                                 public void processAction(
                                        ActionMapping mapping,
                                        ActionForm form,
                                        PortletConfig portletConfig,
                                        ActionRequest actionRequest,
                                        ActionResponse actionResponse) throws Exception {
                                 ...

                      ‣ Habitualmente se redefinen los métodos processAction y
                            render.




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                 Definición de la navegación

                      ‣ Se realiza mediante el fichero struts-config.xml.

                            <?xml version="1.0" encoding="UTF-8"?>
                            <!DOCTYPE struts-config PUBLIC "-//Apache Software
                            Foundation//DTD Struts Configuration 1.2//EN" "http://
                            jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">
                              <struts-config>
                                <action-mappings>
                                <action path="/jsp/input" forward="/portlet/jsp/
                                         listarUsuarios.jsp"></action>
                                <action path="/jsp/borrar"
                                         type="acciones.BorrarUsuarioAction"input="/jsp/
                                         inicio.jsp">
                                <forward name="exito" path="/portlet/jsp/
                                         listarUsuarios.jsp"></forward>
                                </action>




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                                    Páginas JSP

                      ‣ Se define de forma totalmente normal, pero debe encontrarse
                            en la ruta html/portlet/. Ejemplo 1:
                                <action path="/jsp/input"
                                        forward="/portlet/jsp/paginaPrueba.jsp">
                                </action>

                            ‣   La página debe encontrarse en la ruta html/portlet/jsp/paginaPrueba.jsp.

                      ‣ Ejemplo 2:
                                <action path="/portal/layout"
                                type="com.liferay.portal.action.LayoutAction">
                                !   <forward name="portal.layout" path="portal.layout" />
                                </action>

                                <definition name="portal.layout" extends="portal">
                                !   <put name="content" value="/portal/layout.jsp" />
                                !   <put name="selectable" value="true" />
                                </definition>



lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                          Despliegue del plugin Ext

                      ‣ Los plugins Ext son plugins que se pueden desplegar en
                            caliente como los hooks y los portlets, pero, cuidado, esto
                            puede ser engañoso.

                      ‣ Estos plugins son más parecidos al entorno Ext utilizado en
                            anteriores versiones de Liferay en la forma de trabajar con él.

                      ‣ Existen dos formas de desplegar un plugin Ext:

                            ‣   Mediante los scripts Ant disponibles en Plugins SDK, especialmente
                                deploy y direct-deploy.

                            ‣   Creando un fichero war y desplegándolo manualmente en Liferay:

                                ‣   Copiándolo en la carpeta deploy de la instalación.

                                ‣   Mediante la interfaz web.




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                        Despliegue del plugin Ext

                      ‣ Independientemente del proceso de despliegue utilizado,
                            posteriormente, ocurre lo mismo, y no tiene nada que ver con
                            lo que ocurre cuando se despliega otro tipo de plugin:
                            ‣   Se crea ext-service.jar a partir del código que se encuentra en la
                                carpeta ext-service/src.

                            ‣   Se despliega este jar classpath global. El deployer hace esto después de
                                extraerlo del war, o el script Ant lo hace como parte de direct-deploy.

                            ‣   Se crea ext-impl.jar a partir del código que se encuentra en la carpeta
                                ext-impl/src.

                            ‣   El deployer o script entonces comienza a copiar los ficheros en Liferay.
                                Primero, despliega cualquier fichero portal-*.properties o system-
                                *.properties en la carpeta WEB-INF/classes. Y posteriormente, despliega
                                el fichero ext-impl.jar en la carpeta WEB-INF/lib de Liferay.

                            ‣   El deployer o el script copia las carpetas que existen en la carpeta ext-
                                web en la carpeta de Liferay asociada integrando así los cambios con el
                                código de Liferay.




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                    Despliegue del plugin Ext

                      ‣ Debido a estas operaciones, el despliegue de un plugin Ext
                            implica un posterior restart del servidor obligatorio.

                      ‣ El código que aparece en el plugin Ext no se encuentra aislado,
                            forma parte del código de Liferay. Se ejecuta como parte de la
                            aplicación, de la misma forma que lo hace el código de Liferay.

                      ‣ La primera consecuencia de todo esto es que NO se puede
                            deshacer un proceso de despliege. Se necesita tener una copia
                            limpia de nuestra instalación por si comentemos errores.

                      ‣ Se recomienda hacer un proceso de despliegue incremental,
                            siempre sabiendo que si se hace algo más podemos volver a la
                            instalación de Liferay inicial.




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                              Despliegue del plugin Ext

                            cd your-tomcat-install
                            # deleting web application
                            rm -rf webapps/*-ext
                            # deleting jars and config files from Liferay
                            find -name "ext-*" | xargs rm -rf
                            # stopping Liferay
                            bin/shutdown.sh
                            ps ax | grep life
                            #... wait until life ends ;) ....#
                            ps ax | grep life
                            #... wait until life ends ;) ....#
                            ps ax | grep life
                            #... wait until life ends ;) ....#
                            # Starting Liferay
                            bin/startup.sh
                            tail -f logs/catalina.out




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                               Ejercicio

                      ‣ Introducción.

                      ‣ Creación de plugin Ext.

                      ‣ Disponibilidad del portlet.

                      ‣ Estado de la ventana del portlet.

                      ‣ Visualización de contenidos.

                      ‣ Inspección del portlet.

                      ‣ Modificación del portlet.

                      ‣ Conclusión.




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                              Introducción

                      ‣ El portlet Mi cuenta/My Account es elemento muy habitual
                            dentro de Liferay portal.




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                              Introducción

                      ‣ Lamentablemente, por defecto, no se encuentra disponible
                            para su uso en cualquier página de Liferay, sólo a través del
                            panel de control.

                      ‣ Vamos, aprovechando el plugin Ext, a realizar las
                            modificaciones necesarias para que pueda ser utilizado en
                            cualquier sitio.

                      ‣ Posteriormente, lo personalizaremos para que muestre sólo la
                            información que sea necesaria.




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                         Creación de plugin Ext

                      ‣ Trabajando con Eclipse IDE y plugin SDK implica seguir un
                            asistente.

                      ‣ La estructura del proyecto, como ya es sabido, es tal que así:




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                    Disponibilidad del portlet

                      ‣ El primer paso será, editar el fichero de sistema liferay-
                            portlet.xml eliminando del portlet 2 la entrada
                            <system>true</system>.

                      ‣ De esa forma el portlet de administración My Account se
                            encontrará disponible para ser utilizado.

                        <liferay-portlet-app>
                          <portlet>
                          !   <portlet-name>2</portlet-name>
                          !   <icon>/html/icons/my_account.png</icon>
                          !   <struts-path>my_account</struts-path>
                          !   ...
                          !   <system>true</system>
                          </portlet>




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                   Disponibilidad del portlet

                      ‣ El segundo paso será modificar el plugin Ext previamente
                            creado para añadir el fichero portal.xml un directorio llamado
                            resource-actions previamente creado.




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                  Disponibilidad del portlet

                            <portlet-resource>
                              <portlet-name>125</portlet-name>
                              <permissions>
                              <supports>
                              <action-key>ADD_TO_PAGE</action-key>
                              <action-key>ACCESS_IN_CONTROL_PANEL</action-key>
                              <action-key>CONFIGURATION</action-key>
                              <action-key>EXPORT_USER</action-key>
                              <action-key>VIEW</action-key>
                              </supports>
                              <community-defaults>
                              <action-key>VIEW</action-key>
                              </community-defaults>
                              <guest-defaults>
                              <action-key>VIEW</action-key>
                              </guest-defaults>
                              <guest-unsupported>
                              <action-key>ACCESS_IN_CONTROL_PANEL</action-key>
                              <action-key>CONFIGURATION</action-key>
                              </guest-unsupported>
                              </permissions>
                            </portlet-resource>

lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                              Estado de la ventana del portlet

                      ‣ Por defecto, el portlet aparece minimizado y sólo si se
                            maximiza se muestra la información del usuario.

                      ‣ Esto es así debido a la configuración de una clase llamada
                            ViewAction asociada al portlet.

                      ‣ Para modificar su comportamiento, mediante el entorno Ext
                            sobrescribimos dicha clase.




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                            Estado de la ventana del portlet

                      ‣ Redefinir el método render:

                        public class ViewAction extends PortletAction {

                          public ActionForward render(
                        !     ActionMapping mapping, ActionForm form,
                              PortletConfig portletConfig,
                        !     RenderRequest renderRequest,
                              RenderResponse renderResponse)throws Exception {

                        !    !     ...
                        !    !
                        !    }
                        }




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                 Visualización de contenidos

                      ‣ Una vez resuelto el problema de la disponibilidad del portlet,
                            se describe el proceso de personalización.




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                 Visualización de contenidos

                      ‣ Se quiere modificar el portlet para que muestre algo tal que
                            así, se quieren modificar las secciones y los elementos que
                            aparecen en cada sección.




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                     Visualización de contenidos

                      ‣ ¿Cómo se construye la barra lateral?

                      ‣ ¿Y el panel de detalle?

                      ‣ Obligatoriamente el programador necesita conocer el código
                            de este portlet.

                      ‣ StrutsPortlet:

                            ‣   view-action: /my_account/view




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                      Inspección del portlet

                      ‣ Se busca el portlet en el fichero portlet.xml identificando el
                            parámetro view-action.

                        <portlet>
                          <portlet-name>2</portlet-name>
                          <display-name>My Account</display-name>
                          <portlet-class>
                            com.liferay.portlet.StrutsPortlet
                          </portlet-class>
                          <init-param>
                            <name>view-action</name>
                            <value>/my_account/view</value>
                          </init-param>
                        !     !     ...
                        </portlet>




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                   Inspección del portlet

                      ‣ Con ese parámetro se busca en el fichero struts-config.xml:

                        ...

                        <action path="/my_account/view"
                            type="com.liferay.portlet.myaccount.action.ViewAction">
                          <forward name="portlet.my_account.edit_user"
                                    path="portlet.enterprise_admin.edit_user" />
                          <forward name="portlet.my_account.view"
                                    path="portlet.my_account.view" />
                        </action>
                        ...




lunes 11 de junio de 2012
Estrategias de desarrollo avanzado




                                       Inspección del portlet

                      ‣ Con el atributo path de la entrada forward busco en el fichero
                            tiles-def.xml:

                            ...

                            <definition name="portlet.enterprise_admin.edit_user"
                                        extends="portlet.enterprise_admin">
                            !     <put name="portlet_content"
                                       value="/portlet/enterprise_admin/edit_user.jsp" />
                            </definition>
                            ...


                      ‣ La página edit_user.jsp del portlet de admin es el punto de
                            partida.




lunes 11 de junio de 2012
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion

More Related Content

More from CLEFormación

Seminario CLEFormacion-docker
Seminario CLEFormacion-dockerSeminario CLEFormacion-docker
Seminario CLEFormacion-dockerCLEFormación
 
Seminario Scrum CLEFormacion
Seminario Scrum CLEFormacionSeminario Scrum CLEFormacion
Seminario Scrum CLEFormacionCLEFormación
 
Alfresco. La gestión de contenidos empresarial
Alfresco. La gestión de contenidos empresarialAlfresco. La gestión de contenidos empresarial
Alfresco. La gestión de contenidos empresarialCLEFormación
 
Seminario BI CLEFormación
Seminario BI CLEFormaciónSeminario BI CLEFormación
Seminario BI CLEFormaciónCLEFormación
 
Presentación Seminario Cleformación HTML5, El lenguaje del futuro
Presentación Seminario Cleformación HTML5, El lenguaje del futuroPresentación Seminario Cleformación HTML5, El lenguaje del futuro
Presentación Seminario Cleformación HTML5, El lenguaje del futuroCLEFormación
 
Curso ORACLE de CLEFormación - Oracle11g. Lenguaje SQL.
Curso ORACLE de CLEFormación - Oracle11g. Lenguaje SQL. Curso ORACLE de CLEFormación - Oracle11g. Lenguaje SQL.
Curso ORACLE de CLEFormación - Oracle11g. Lenguaje SQL. CLEFormación
 
Curso sistemas abiertos CLEFormacion - Administración de sistemas Solaris 10 ...
Curso sistemas abiertos CLEFormacion - Administración de sistemas Solaris 10 ...Curso sistemas abiertos CLEFormacion - Administración de sistemas Solaris 10 ...
Curso sistemas abiertos CLEFormacion - Administración de sistemas Solaris 10 ...CLEFormación
 
Curso CLEFormacion de Entornos Operativos y Sistemas - Administración de Red ...
Curso CLEFormacion de Entornos Operativos y Sistemas - Administración de Red ...Curso CLEFormacion de Entornos Operativos y Sistemas - Administración de Red ...
Curso CLEFormacion de Entornos Operativos y Sistemas - Administración de Red ...CLEFormación
 
Curso de Entornos Operativos y Plataformas de CLEFormación - Introducción a B...
Curso de Entornos Operativos y Plataformas de CLEFormación - Introducción a B...Curso de Entornos Operativos y Plataformas de CLEFormación - Introducción a B...
Curso de Entornos Operativos y Plataformas de CLEFormación - Introducción a B...CLEFormación
 
Curso entornos operativos y plataformas - NSQ 100
Curso entornos operativos y plataformas - NSQ 100Curso entornos operativos y plataformas - NSQ 100
Curso entornos operativos y plataformas - NSQ 100CLEFormación
 
Curso de entornos operativos y plataformas - Introducción al Cloud Computing ...
Curso de entornos operativos y plataformas - Introducción al Cloud Computing ...Curso de entornos operativos y plataformas - Introducción al Cloud Computing ...
Curso de entornos operativos y plataformas - Introducción al Cloud Computing ...CLEFormación
 
Curso de Sistemas Abiertos MySQL - Administración PostgreSQL.
Curso de Sistemas Abiertos MySQL - Administración PostgreSQL.Curso de Sistemas Abiertos MySQL - Administración PostgreSQL.
Curso de Sistemas Abiertos MySQL - Administración PostgreSQL.CLEFormación
 
Cursos sistemas abiertos MySQL - Administración Apache HTTP Server. AHT-100
Cursos sistemas abiertos MySQL - Administración Apache HTTP Server. AHT-100Cursos sistemas abiertos MySQL - Administración Apache HTTP Server. AHT-100
Cursos sistemas abiertos MySQL - Administración Apache HTTP Server. AHT-100CLEFormación
 
Curso MySQL entornos operativos y plataformas - Lenguaje SQL MYS-100
Curso MySQL entornos operativos y plataformas  - Lenguaje SQL MYS-100Curso MySQL entornos operativos y plataformas  - Lenguaje SQL MYS-100
Curso MySQL entornos operativos y plataformas - Lenguaje SQL MYS-100CLEFormación
 
Curso Mainframe Madrid de CLEFormacion - DB2/SQL para usuarios con experiencia.
Curso Mainframe Madrid de CLEFormacion - DB2/SQL para usuarios con experiencia.Curso Mainframe Madrid de CLEFormacion - DB2/SQL para usuarios con experiencia.
Curso Mainframe Madrid de CLEFormacion - DB2/SQL para usuarios con experiencia.CLEFormación
 
Cursos Mainframe en Madrid CLEFormacion - Optimización Base de Datos DB2
Cursos Mainframe en Madrid CLEFormacion - Optimización Base de Datos DB2Cursos Mainframe en Madrid CLEFormacion - Optimización Base de Datos DB2
Cursos Mainframe en Madrid CLEFormacion - Optimización Base de Datos DB2CLEFormación
 
Curso Mainframe CLEFormacion - Análisis Estructurado
Curso Mainframe CLEFormacion - Análisis EstructuradoCurso Mainframe CLEFormacion - Análisis Estructurado
Curso Mainframe CLEFormacion - Análisis EstructuradoCLEFormación
 
Curso Mainframe CLEFormacion - Diseño de Bases de datos DB2
Curso Mainframe CLEFormacion - Diseño de Bases de datos DB2Curso Mainframe CLEFormacion - Diseño de Bases de datos DB2
Curso Mainframe CLEFormacion - Diseño de Bases de datos DB2CLEFormación
 
Seminario &quot;Desarrollo para entornos móviles. Comparativas y tendencias&q...
Seminario &quot;Desarrollo para entornos móviles. Comparativas y tendencias&q...Seminario &quot;Desarrollo para entornos móviles. Comparativas y tendencias&q...
Seminario &quot;Desarrollo para entornos móviles. Comparativas y tendencias&q...CLEFormación
 

More from CLEFormación (20)

Curso sobre Python
Curso sobre PythonCurso sobre Python
Curso sobre Python
 
Seminario CLEFormacion-docker
Seminario CLEFormacion-dockerSeminario CLEFormacion-docker
Seminario CLEFormacion-docker
 
Seminario Scrum CLEFormacion
Seminario Scrum CLEFormacionSeminario Scrum CLEFormacion
Seminario Scrum CLEFormacion
 
Alfresco. La gestión de contenidos empresarial
Alfresco. La gestión de contenidos empresarialAlfresco. La gestión de contenidos empresarial
Alfresco. La gestión de contenidos empresarial
 
Seminario BI CLEFormación
Seminario BI CLEFormaciónSeminario BI CLEFormación
Seminario BI CLEFormación
 
Presentación Seminario Cleformación HTML5, El lenguaje del futuro
Presentación Seminario Cleformación HTML5, El lenguaje del futuroPresentación Seminario Cleformación HTML5, El lenguaje del futuro
Presentación Seminario Cleformación HTML5, El lenguaje del futuro
 
Curso ORACLE de CLEFormación - Oracle11g. Lenguaje SQL.
Curso ORACLE de CLEFormación - Oracle11g. Lenguaje SQL. Curso ORACLE de CLEFormación - Oracle11g. Lenguaje SQL.
Curso ORACLE de CLEFormación - Oracle11g. Lenguaje SQL.
 
Curso sistemas abiertos CLEFormacion - Administración de sistemas Solaris 10 ...
Curso sistemas abiertos CLEFormacion - Administración de sistemas Solaris 10 ...Curso sistemas abiertos CLEFormacion - Administración de sistemas Solaris 10 ...
Curso sistemas abiertos CLEFormacion - Administración de sistemas Solaris 10 ...
 
Curso CLEFormacion de Entornos Operativos y Sistemas - Administración de Red ...
Curso CLEFormacion de Entornos Operativos y Sistemas - Administración de Red ...Curso CLEFormacion de Entornos Operativos y Sistemas - Administración de Red ...
Curso CLEFormacion de Entornos Operativos y Sistemas - Administración de Red ...
 
Curso de Entornos Operativos y Plataformas de CLEFormación - Introducción a B...
Curso de Entornos Operativos y Plataformas de CLEFormación - Introducción a B...Curso de Entornos Operativos y Plataformas de CLEFormación - Introducción a B...
Curso de Entornos Operativos y Plataformas de CLEFormación - Introducción a B...
 
Curso entornos operativos y plataformas - NSQ 100
Curso entornos operativos y plataformas - NSQ 100Curso entornos operativos y plataformas - NSQ 100
Curso entornos operativos y plataformas - NSQ 100
 
Curso de entornos operativos y plataformas - Introducción al Cloud Computing ...
Curso de entornos operativos y plataformas - Introducción al Cloud Computing ...Curso de entornos operativos y plataformas - Introducción al Cloud Computing ...
Curso de entornos operativos y plataformas - Introducción al Cloud Computing ...
 
Curso de Sistemas Abiertos MySQL - Administración PostgreSQL.
Curso de Sistemas Abiertos MySQL - Administración PostgreSQL.Curso de Sistemas Abiertos MySQL - Administración PostgreSQL.
Curso de Sistemas Abiertos MySQL - Administración PostgreSQL.
 
Cursos sistemas abiertos MySQL - Administración Apache HTTP Server. AHT-100
Cursos sistemas abiertos MySQL - Administración Apache HTTP Server. AHT-100Cursos sistemas abiertos MySQL - Administración Apache HTTP Server. AHT-100
Cursos sistemas abiertos MySQL - Administración Apache HTTP Server. AHT-100
 
Curso MySQL entornos operativos y plataformas - Lenguaje SQL MYS-100
Curso MySQL entornos operativos y plataformas  - Lenguaje SQL MYS-100Curso MySQL entornos operativos y plataformas  - Lenguaje SQL MYS-100
Curso MySQL entornos operativos y plataformas - Lenguaje SQL MYS-100
 
Curso Mainframe Madrid de CLEFormacion - DB2/SQL para usuarios con experiencia.
Curso Mainframe Madrid de CLEFormacion - DB2/SQL para usuarios con experiencia.Curso Mainframe Madrid de CLEFormacion - DB2/SQL para usuarios con experiencia.
Curso Mainframe Madrid de CLEFormacion - DB2/SQL para usuarios con experiencia.
 
Cursos Mainframe en Madrid CLEFormacion - Optimización Base de Datos DB2
Cursos Mainframe en Madrid CLEFormacion - Optimización Base de Datos DB2Cursos Mainframe en Madrid CLEFormacion - Optimización Base de Datos DB2
Cursos Mainframe en Madrid CLEFormacion - Optimización Base de Datos DB2
 
Curso Mainframe CLEFormacion - Análisis Estructurado
Curso Mainframe CLEFormacion - Análisis EstructuradoCurso Mainframe CLEFormacion - Análisis Estructurado
Curso Mainframe CLEFormacion - Análisis Estructurado
 
Curso Mainframe CLEFormacion - Diseño de Bases de datos DB2
Curso Mainframe CLEFormacion - Diseño de Bases de datos DB2Curso Mainframe CLEFormacion - Diseño de Bases de datos DB2
Curso Mainframe CLEFormacion - Diseño de Bases de datos DB2
 
Seminario &quot;Desarrollo para entornos móviles. Comparativas y tendencias&q...
Seminario &quot;Desarrollo para entornos móviles. Comparativas y tendencias&q...Seminario &quot;Desarrollo para entornos móviles. Comparativas y tendencias&q...
Seminario &quot;Desarrollo para entornos móviles. Comparativas y tendencias&q...
 

Recently uploaded

LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..RobertoGumucio2
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 

Recently uploaded (20)

LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 

Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion

  • 1. Características más importantes de Liferay 6.1 Liferay 6.1 La gestión avanzada de portales y las tecnologías Java Empresariales Viernes 8 de Junio de 2012 Centro de Innovación del BBVA (Madrid) Jesús Salinas Revelles lunes 11 de junio de 2012
  • 2. Características más importantes de Liferay 6.1 Índice ‣ Introducción. ‣ El panel de control. ‣ Organizaciones y sitios web. ‣ Usuarios y roles. ‣ Trabajando con taxonomías. ‣ Contenidos web. ‣ Multimedia. ‣ Plantillas. lunes 11 de junio de 2012
  • 3. Características más importantes de Liferay 6.1 Índice ‣ Flujos de trabajo. ‣ Listas de datos dinámicas. ‣ Redes sociales. ‣ Campos personalizados. ‣ OpenSocial. ‣ Stage. ‣ Configuración. lunes 11 de junio de 2012
  • 4. Características más importantes de Liferay 6.1 Introducción ‣ Pasamos a comentar a continuación algunas de las funcionalidades más importantes que nos ofrece Liferay Portal por defecto. ‣ Son funcionalidades que puede aprender a configurar cualquier usuario de la plataforma. lunes 11 de junio de 2012
  • 5. Características más importantes de Liferay 6.1 El panel de control ‣ Introducción. ‣ La sección del usuario. ‣ La sección Liferay. ‣ La sección Portal. ‣ La sección Servidor. lunes 11 de junio de 2012
  • 6. Características más importantes de Liferay 6.1 Introducción ‣ El panel de control es la herramienta de administración y configuración del sistema. ‣ Permite al usuario acceder a funcionalidades que ofrece la plataforma en función de su role, es decir, el panel de control es un área dentro del gestor que cambia en función de los permisos que tiene cada usuario. ‣ Para acceder a él, por defecto, se hace mediante la barra Ir a. lunes 11 de junio de 2012
  • 7. Características más importantes de Liferay 6.1 Introducción ‣ Si eres administrador el panel de control tiene cuatro secciones: ‣ Cuenta de usuario, Liferay, Portal y Servidor. lunes 11 de junio de 2012
  • 8. Características más importantes de Liferay 6.1 Introducción ‣ Si eres editor la barra de administración es muy limitada y su panel de control también. lunes 11 de junio de 2012
  • 9. Características más importantes de Liferay 6.1 La sección del usuario lunes 11 de junio de 2012
  • 10. Características más importantes de Liferay 6.1 La sección Liferay lunes 11 de junio de 2012
  • 11. Características más importantes de Liferay 6.1 La sección Portal ‣ Nos permite realizar todo tipo de tareas administrativas: Esta sección nos permite gestionar usuarios, grupos de usuarios, etc lunes 11 de junio de 2012
  • 12. Características más importantes de Liferay 6.1 La sección Portal Este panel permite listar todos los usuarios, ‣ Gestión de usuarios: añadir, buscar, etc. Esta sección nos Listado de usuarios permite gestionar usuarios, grupos de usuarios, etc lunes 11 de junio de 2012
  • 13. Características más importantes de Liferay 6.1 La sección Servidor ‣ En esta sección encontramos las siguientes opciones: lunes 11 de junio de 2012
  • 14. Características más importantes de Liferay 6.1 Organizaciones y sitios web ‣ Hasta la versión 6 de Liferay se manejan dos conceptos: ‣ Organización y ‣ Comunidad. ‣ Para la versión 6.1 desaparece el concepto de Comunidad y se incorpora el concepto de Sitio Web. lunes 11 de junio de 2012
  • 15. Características más importantes de Liferay 6.1 Organización ‣ Las organizaciones son colecciones de usuarios jerárquica. ‣ Las organizaciones son recursos que pueden tener páginas. ‣ Hay un tipo especial de organización llamado location, que define donde se encuentra. ‣ Las organizaciones son muy útiles para definir las jerarquías a las que pertenecen los usuarios. lunes 11 de junio de 2012
  • 16. Características más importantes de Liferay 6.1 Organización Una organización es una estructura jerárquica. lunes 11 de junio de 2012
  • 17. Características más importantes de Liferay 6.1 Organización ‣ Por ejemplo: Se está utilizando Liferay para trabajar con una gran organización. Si se quiere definir el usuario Antonio Molina mediante el organigrama de la empresa. Se supone que trabaja como ingeniero informático en la oficina de Sevilla, en la división Sur, en el departamento de I+D+i. Este usuario debe ser miembro de las siguientes organizaciones: ‣ I+D+i. ‣ División Sur. ‣ Localización Sevilla. ‣ Las organizaciones pueden formar parte de un sitio web. lunes 11 de junio de 2012
  • 18. Características más importantes de Liferay 6.1 Organización ‣ Los miembros de una organización SÓLO pueden ser usuarios: lunes 11 de junio de 2012
  • 19. Características más importantes de Liferay 6.1 Organización ‣ Se pueden asignar roles de organización a una organización, de tal forma que, todos los usuarios que pertenezcan a dicha organización automáticamente tendrá esos roles: lunes 11 de junio de 2012
  • 20. Características más importantes de Liferay 6.1 Sitio web ‣ Como ya se ha comentado antes, el sitio web es la evolución del antiguo concepto de comunidad: lunes 11 de junio de 2012
  • 21. Características más importantes de Liferay 6.1 Sitio web ‣ Para cada sitio web podemos realizar las siguientes operaciones: lunes 11 de junio de 2012
  • 22. Características más importantes de Liferay 6.1 Sitio web ‣ Por ejemplo, se pueden gestionar los miembros de un sitio web: lunes 11 de junio de 2012
  • 23. Características más importantes de Liferay 6.1 Usuarios ‣ Personas que acceden de alguna forma al portal que se quiere desarrollar: lunes 11 de junio de 2012
  • 24. Características más importantes de Liferay 6.1 Usuarios ‣ Los usuarios pueden acceder a los portales, los usuarios pertenecen a organizaciones o sitios web. Pueden agruparse de varias formas: ‣ Miembros de organizaciones. ‣ Pueden encontrarse dentro de grupos de usuarios. ‣ Miembros de sitios web. ‣ Los usuarios tienen asociados unos roles que definen qué pueden y qué no pueden hacer en función de dónde se encuentran. lunes 11 de junio de 2012
  • 25. Características más importantes de Liferay 6.1 Usuarios ‣ Los usuarios pueden acceder a los portales. ‣ Los usuarios se organizan en grupos de usuarios. ‣ Los usuarios pertenecen a organizaciones. ‣ Las organizaciones pueden organizarse en jerarquías. ‣ Los usuarios, grupos y organizaciones pueden pertenecer a comunidades que tienen un interés común. lunes 11 de junio de 2012
  • 26. Características más importantes de Liferay 6.1 Grupo de usuarios ‣ Conjunto arbitrario de usuarios creado por un administrador. lunes 11 de junio de 2012
  • 27. Características más importantes de Liferay 6.1 Grupo de usuarios ‣ Sólo usuarios pueden ser miembros de un grupo: lunes 11 de junio de 2012
  • 28. Características más importantes de Liferay 6.1 Grupo de usuarios ‣ Un grupo de usuarios puede tener asociado un conjunto de páginas. ‣ Importante: un grupo de usuarios NO pueden tener asociados roles. lunes 11 de junio de 2012
  • 29. Características más importantes de Liferay 6.1 Equipos ‣ Grupo de usuarios definido exclusivamente para un sitio web: lunes 11 de junio de 2012
  • 30. Características más importantes de Liferay 6.1 Equipos ‣ Se dan de alta usuarios dentro de un equipo: lunes 11 de junio de 2012
  • 31. Características más importantes de Liferay 6.1 Equipos ‣ Una vez definido un equipo, se pueden definir permisos en las aplicaciones del portal sobre estos (siempre sobre el sitio web donde hayan sido definidos). lunes 11 de junio de 2012
  • 32. Características más importantes de Liferay 6.1 Roles ‣ Identificador lógico que tiene asociado una serie de permisos. ‣ Existen tres tipos: ‣ Roles normales. ‣ Roles de organización. ‣ Roles de sitios. ‣ Se les denomina role scopes. Estos roles se utilizan para definir permisos dentro de un portal, organización o comunidad. ‣ Usuarios, comunidades y organizaciones pueden asociarse a un determinado role. lunes 11 de junio de 2012
  • 33. Características más importantes de Liferay 6.1 Trabajando con taxonomías ‣ La gestión de categorías se realiza mediante el panel de control, dentro de la sección Liferay: lunes 11 de junio de 2012
  • 34. Características más importantes de Liferay 6.1 Trabajando con taxonomías ‣ Se pueden crear nuevos vocabularios, por ejemplo, un vocabulario para el portal del Empleado. ‣ Se puede definir la visibilidad del vocabulario en función del role del usuario. lunes 11 de junio de 2012
  • 35. Características más importantes de Liferay 6.1 Trabajando con taxonomías ‣ Se pueden crear categoría asociadas a un vocabulario lunes 11 de junio de 2012
  • 36. Características más importantes de Liferay 6.1 Trabajando con taxonomías ‣ La gestión de etiquetas se realiza mediante el panel de control, dentro de la sección Liferay: lunes 11 de junio de 2012
  • 37. Características más importantes de Liferay 6.1 Trabajando con taxonomías ‣ Se pueden crear etiquetas: lunes 11 de junio de 2012
  • 38. Características más importantes de Liferay 6.1 Trabajando con taxonomías ‣ Como ya se ha comentado en la introducción, la clave de las etiquetas es que pueden ser creadas por el usuario de forma totalmente flexible y dinámica. lunes 11 de junio de 2012
  • 39. Características más importantes de Liferay 6.1 Contenidos web ‣ La generación de contenidos web es uno de los elementos más importantes dentro del concepto de portal, dado que permite, a los gestores del portal y a los usuarios que acceden a él, dotar de contenidos a la herramienta. ‣ Liferay ofrece una serie de funcionalidades que permite generar, revisar y mantener contenidos web de una forma cómoda, flexible y avanzada: ‣ Editor de contenidos web: WYSWYG. ‣ Portlets auxiliares para el manejo de contenidos. ‣ Integración con flujos de trabajo. ‣ ... lunes 11 de junio de 2012
  • 40. Características más importantes de Liferay 6.1 Contenidos web ‣ Dentro de la sección Liferay podemos encontrar un enlace llamado Contenidos Web: lunes 11 de junio de 2012
  • 41. Características más importantes de Liferay 6.1 Contenidos web ‣ Esta sección nos permite crear, editar, borrar y buscar contenidos web. lunes 11 de junio de 2012
  • 42. Características más importantes de Liferay 6.1 Contenidos web ‣ La lista de portlets para la gestión de contenidos se encuentra disponible mediante la opción Añadir de la barra superior, en la opción Más: lunes 11 de junio de 2012
  • 43. Características más importantes de Liferay 6.1 Contenidos web ‣ Liferay permite crear contenidos web totalmente personalizados. ‣ De forma estándar, cuando se quiere crear contenidos web se utiliza el portlet Contenido web accesible desde el panel de control: lunes 11 de junio de 2012
  • 44. Características más importantes de Liferay 6.1 Contenidos web ‣ Hasta ahora no hemos tenido en cuenta: Las estructuras y las plantillas nos permitirán ofrecer valor añadido a la hora de definir nuevos contenidos web lunes 11 de junio de 2012
  • 45. Características más importantes de Liferay 6.1 Soporte a múltiples lenguajes ‣ Liferay proporciona soporte a diferentes lenguajes, la gestión de contenidos web no podía ser menos. ‣ Podemos definir el mismo contenido web en diferentes idiomas, de tal manera que si se cambia el idioma de visualización de contenidos, cambia también el del contenido web. ‣ El proceso se realiza mediante una etiqueta llamada localizado (en español). lunes 11 de junio de 2012
  • 46. Características más importantes de Liferay 6.1 Soporte a múltiples lenguajes ‣ Se crea un documento en inglés: lunes 11 de junio de 2012
  • 47. Características más importantes de Liferay 6.1 Soporte a múltiples lenguajes ‣ Posteriormente se edita: lunes 11 de junio de 2012
  • 48. Características más importantes de Liferay 6.1 Soporte a múltiples lenguajes ‣ El documento se edita cambian el idioma en el que está escrito: lunes 11 de junio de 2012
  • 49. Características más importantes de Liferay 6.1 Multimedia ‣ Documentos y Multimedia actúa como un disco compartido virtual, con atributos y metadatos de fichero, versionado y personalización de carpetas. ‣ Los administradores pueden manejar carpetas y documentos, cambiar los permisos y navegar por la biblioteca de documentos. lunes 11 de junio de 2012
  • 50. Características más importantes de Liferay 6.1 Multimedia ‣ Interfaz de usuario innovadora, drag and drop, selección con ratón. ‣ Repositorio unificado: conecta a múltiples repositorios: sharepoint, documentum, alfresco. ‣ Previsualización de formatos estándares. ‣ Definir nuevos tipos de documentos: los documentos tienen características específicas: formulario visual para que el usuario pueda incorporar. ‣ Aplicación iphone. ‣ Dropbox: Liferay Sync. lunes 11 de junio de 2012
  • 51. Características más importantes de Liferay 6.1 Plantillas lunes 11 de junio de 2012
  • 52. Características más importantes de Liferay 6.1 Flujos de trabajo ‣ Configuración de los flujos de trabajo utilizados dentro de Liferay: lunes 11 de junio de 2012
  • 53. Características más importantes de Liferay 6.1 Listas de datos dinámicas ‣ Esta nueva funcionalidad nos permite crear listas dinámicas: lunes 11 de junio de 2012
  • 54. Características más importantes de Liferay 6.1 Listas de datos dinámicas ‣ Se pueden definir los datos a manejar: lunes 11 de junio de 2012
  • 55. Características más importantes de Liferay 6.1 Listas de datos dinámicas ‣ El visor nos permite manejar dichas listas: lunes 11 de junio de 2012
  • 56. Características más importantes de Liferay 6.1 Redes sociales ‣ Introducción. ‣ Blogs. ‣ Calendario. ‣ Wiki. ‣ Foro. ‣ Mail. ‣ Proyectos de la comunidad. lunes 11 de junio de 2012
  • 57. Características más importantes de Liferay 6.1 Introducción ‣ Liferay portal proporciona un conjunto de aplicaciones colaborativas que pueden usarse para construir comunidades de usuarios para tus webs. ‣ Todas estas aplicaciones comparten una apariencia común, modelo de seguridad, etc. ‣ Vamos a analizar cómo configurar y administrar blogs, calendarios, chats,wikis, foros y correo electrónico. lunes 11 de junio de 2012
  • 58. Características más importantes de Liferay 6.1 Blogs ‣ El término blog procede de web log, web diaria, en español también conocido como bitácora. ‣ No es más que una lista de entradas donde los usuarios pueden asociar comentarios. ‣ Un blog es un sitio web que recopila textos o artículos de uno o varios autores, apareciendo primero el más reciente, a los que los lectores pueden asociar comentarios. lunes 11 de junio de 2012
  • 59. Características más importantes de Liferay 6.1 Blogs ‣ Liferay tiene un portlet llamado Blogs que permite proporcionar un servicio de blogs para los usuarios de la web. ‣ Asociado a este existe un segundo portlet llamado Blogs Aggregator que recupera entradas de distintos y las organiza en una lista. lunes 11 de junio de 2012
  • 60. Características más importantes de Liferay 6.1 Blogs ‣ Portlet Blogs: ‣ Sólo puede crearse una instancia por comunidad u organización. ‣ Si se añade un portlet de este tipo a la página de una comunidad u organización, se crea un blog compartido para los miembros de la comunidad u organización. ‣ Si se añade este portlet al espacio personal de un usuario sólo será para el usuario. lunes 11 de junio de 2012
  • 61. Características más importantes de Liferay 6.1 Blogs ‣ Portlet Blogs. Configuración: ‣ Por defecto, sólo el dueño de la comunidad puede añadir entradas al blog. ‣ Para modificar este comportamiento se deben cambiar los permisos asociados. ‣ Una vez solventados los problemas de permisos, el usuario podrá incluir entradas en el blog haciendo click sobre el botón: lunes 11 de junio de 2012
  • 62. Características más importantes de Liferay 6.1 Blogs ‣ Portlet Blogs. Crear entradas: lunes 11 de junio de 2012
  • 63. Características más importantes de Liferay 6.1 Blogs ‣ Agregador de blogs: ‣ Te permite publicar entradas de diferentes bloggers en una página. lunes 11 de junio de 2012
  • 64. Características más importantes de Liferay 6.1 Calendario ‣ El portlet Agenda (Calendar portlet) es una solución de calendario muy completa: lunes 11 de junio de 2012
  • 65. Características más importantes de Liferay 6.1 Calendario ‣ Se pueden incorporar eventos de diferentes tipos, recibir alarmas vía email o sms, importar o exportar el calendario, etc. ‣ También se pueden importar y exportar calendarios en formato ICS para usarlo en otras aplicaciones. ‣ Los calendarios se pueden utilizar como calendarios compartidos para una comunidad u organización, o como calendarios personales. Esto se configura definiendo un determinado ámbito dentro de la configuración del portlet: lunes 11 de junio de 2012
  • 66. Características más importantes de Liferay 6.1 Wiki ‣ El portlet Wiki ofrece una aplicación Wiki con todas las características que se esperan. lunes 11 de junio de 2012
  • 67. Características más importantes de Liferay 6.1 Foros ‣ El portlet nos ofrece en la barra principal enlaces para acceder a Mensajes recientes, Mis mensajes, etc. ‣ Se pueden añadir nuevas categorías y crear nuevos hilos de discusión. lunes 11 de junio de 2012
  • 68. Características más importantes de Liferay 6.1 Foros ‣ Categorías: ‣ Se pueden buscar y crear categorías dentro del foro, es una forma de organizar el flujo de información. lunes 11 de junio de 2012
  • 69. Características más importantes de Liferay 6.1 Foros ‣ Asociados a cada categoría se crean hilos de discusión: lunes 11 de junio de 2012
  • 70. Características más importantes de Liferay 6.1 Foros ‣ Mis mensajes: ‣ Se puede localizar de una forma sencilla todos los mensajes que a creado un usuario: lunes 11 de junio de 2012
  • 71. Características más importantes de Liferay 6.1 Foros ‣ Mis suscripciones: ‣ El usuario puede suscribirse a categorías. Se selecciona la categoría y mediante el botón Acciones se marca la opción Suscribirse. ‣ Una vez añadidas las suscripciones, en la pestaña Mis suscripciones estarán disponibles para un acceso rápido. lunes 11 de junio de 2012
  • 72. Características más importantes de Liferay 6.1 Foros ‣ Mensajes recientes: lunes 11 de junio de 2012
  • 73. Características más importantes de Liferay 6.1 Mails ‣ Cada usuario tiene la posibilidad de consultar su correo electrónico previamente configurado o configurar nuevas cuentas de correo electrónico. Para configurar una cuenta se debe hacer click sobre la opción añadir cuenta de correo electrónico: lunes 11 de junio de 2012
  • 74. Características más importantes de Liferay 6.1 Mails ‣ Por ejemplo: lunes 11 de junio de 2012
  • 75. Características más importantes de Liferay 6.1 Vaadin Mail lunes 11 de junio de 2012
  • 76. Características más importantes de Liferay 6.1 Proyectos de la comunidad lunes 11 de junio de 2012
  • 77. Características más importantes de Liferay 6.1 Proyectos de la comunidad lunes 11 de junio de 2012
  • 78. Características más importantes de Liferay 6.1 Campos personalizados ‣ Existe un mecanismo para añadir nuevos campos a la entidades que ya existen en el núcleo de Liferay sin necesidad de modificar el modelo y sus servicios asociados. ‣ Este mecanismo se conoce como Campos personalizados. ‣ Desde el panel de control se puede acceder a la funcionalidad que comentamos: lunes 11 de junio de 2012
  • 79. Características más importantes de Liferay 6.1 Campos personalizados ‣ Seleccionando la opción Editar pueden añadirse campos: ‣ Se debe definir una clave y un tipo de dato. lunes 11 de junio de 2012
  • 80. Características más importantes de Liferay 6.1 Campos personalizados ‣ Los tipos disponibles para la versión 6 de Liferay son: lunes 11 de junio de 2012
  • 81. Características más importantes de Liferay 6.1 OpenSocial ‣ Liferay Portal 6 ofrece un contenedor OpenSocial basado en Shindig. ‣ Gadgets OpenSocial permite incluir en nuestras aplicaciones este tipo de aplicaciones. lunes 11 de junio de 2012
  • 82. Características más importantes de Liferay 6.1 OpenSocial ‣ Por ejemplo: ‣ http://www.labpixies.com/campaigns/todo/todo.xml ‣ http://www.google.com/ig/modules/horoscope.xml lunes 11 de junio de 2012
  • 83. Características más importantes de Liferay 6.1 Stage ‣ Mecanismo muy interesante para poder actualizar los contenidos de un determinado portal y pasarlo a producción cuando sea necesario. ‣ Este sistema ha evolucionado mucho en esta última versión. lunes 11 de junio de 2012
  • 84. Características más importantes de Liferay 6.1 Configuración de un sitio web lunes 11 de junio de 2012
  • 85. Características más importantes de Liferay 6.1 Configuración de la plataforma lunes 11 de junio de 2012
  • 86. Estrategias de desarrollo avanzado Liferay 6.1 La gestión avanzada de portales y las tecnologías Java Empresariales Viernes 8 de Junio de 2012 Centro de Innovación del BBVA (Madrid) Jesús Salinas Revelles lunes 11 de junio de 2012
  • 87. Estrategias de desarrollo avanzado Índice de contenidos ‣ Introducción. ‣ ¿Cuándo? ‣ ¿Dónde? ‣ Portal. ‣ Plugin Portlets. ‣ Plugin Ext. ‣ Plugin Hook. lunes 11 de junio de 2012
  • 88. Estrategias de desarrollo avanzado Introducción ‣ Liferay nos ofrece una serie de funcionalidades por defecto que nos hacen la vida más fácil y que en muchos casos, pueden encajar con los servicios que necesita nuestro cliente. ‣ En muchas otras ocasiones esto no será posible, el desarrollador tiene que incluir nueva funcionalidad en la plataforma. ‣ Capacidad de integración: ‣ Nos ofrece diferentes estrategias para incorporar nuevas funcionalidades dentro de la plataforma. lunes 11 de junio de 2012
  • 89. Estrategias de desarrollo avanzado Introducción Gestores Bases de datos documentales Motores de Motores de Liferay Portal Informes workflow Sistemas de gestión ... integral lunes 11 de junio de 2012
  • 90. Estrategias de desarrollo avanzado Introducción ‣ Liferay nos permite crear módulos/piezas software apoyándonos en los frameworks JavaEE más conocidos: ‣ Capa de presentación: Struts, JavaServer Faces, etc. ‣ Capa de negocio: Spring Framework (POA, IoC, gestión de transacciones). ‣ Capa de persistencia: Hibernate, iBatis, etc. ‣ También se puede trabajar con tecnología Servlet y JSP. ‣ El desarrollador puede aprovechar su Know-How para crear infinidad de aplicaciones que posteriormente podrán integrarse en una plataforma común de forma sencilla y simple. lunes 11 de junio de 2012
  • 91. Estrategias de desarrollo avanzado Introducción ‣ Como ya se ha comentado antes, Liferay permite al desarrollador crear nuevas funcionalidades utilizando diferentes estrategias. ‣ Estas estrategias de desarrollo deben conocerse, sabiendo cuál elegir en cada momento. ‣ Una mala decisión puede condicionar en gran medida el éxito o el fracaso de un desarrollo. Éstas son: ‣ Plugin Portlet. ‣ Plugin Hook. ‣ Plugin Ext. lunes 11 de junio de 2012
  • 92. Estrategias de desarrollo avanzado ¿Cuándo? ‣ Como ya se ha comentado antes, tenemos tres alternativas cuando desarrollamos nuevas funcionalidades en Liferay: ‣ Portlets: desarrollos nuevos que no tienen nada que ver con portlets que ya existen en Liferay. ‣ Hooks: modificaciones no muy profundas sobre el core del producto. ‣ Ext: modificaciones profundas de la plataforma. lunes 11 de junio de 2012
  • 93. Estrategias de desarrollo avanzado ¿Dónde? ‣ Herramientas disponibles para desarrollar: ‣ Eclipse Liferay IDE. ‣ NetBeans. ‣ Cualquier herramienta de desarrollo que trabaje con Java. lunes 11 de junio de 2012
  • 94. Estrategias de desarrollo avanzado ¿Dónde? lunes 11 de junio de 2012
  • 95. Estrategias de desarrollo avanzado ¿Dónde? ‣ Trabajando con Plugin SDK lunes 11 de junio de 2012
  • 96. Estrategias de desarrollo avanzado Portal ‣ Un portal es una aplicación web que proporciona personalización, autenticación, mecanismos para incorporar contenidos en una página web y centraliza la capa de presentación de un sistema de información. ‣ Un portal debe tener características avanzadas para la personalización de los contenidos de usuario. ‣ Las páginas de un portal pueden estar formadas por los contenidos generados por diferentes portlets. lunes 11 de junio de 2012
  • 97. Estrategias de desarrollo avanzado Portal ‣ Todas las características de un portal se apoyan en el siguiente concepto: ‣ Integrar diferentes aplicaciones en la misma pantalla. ‣ El usuario interactúa con el portal y el portal interactúa con diferentes aplicaciones de backend, integrándolas a todas en una única ventana del navegador sobre la que el usuario actúa. ‣ Esta integración habitualmente se conoce como at the glass. lunes 11 de junio de 2012
  • 98. Estrategias de desarrollo avanzado Portal ‣ Analicemos las características más importantes de la definición de portal: ‣ Personalización de usuario: permite que el usuario personalice los contenidos que ve en las páginas del portal. ‣ Personalización del backend: permite al administrador personalizar un determinado componente para un entorno específico. ‣ Single sign on: el usuario tendrá que autenticarse una sola vez. ‣ Incorporación de contenido: ‣ Concepto de componente: permite que se desarrollen componentes que se puedan incorporar en el portal. Son como bloques de construcción. lunes 11 de junio de 2012
  • 99. Estrategias de desarrollo avanzado Plugin Portlet ‣ Introducción. ‣ ¿Qué es un portlet? ‣ ¿Quién puede construir un portlet? ‣ ¿Cómo se construye un portlet? lunes 11 de junio de 2012
  • 100. Estrategias de desarrollo avanzado Introducción ‣ La tecnología Portlet va a permitir al desarrollador crear componentes de interfaz de usuario intercambiables e independientes para construir páginas en portales web. ‣ Se basa en tecnología Java. ‣ Java Community Process es el organismo que actúa como mecanismo para desarrollar especificaciones técnicas estándares para tecnologías Java. ‣ Se ha encargado de definir la especificación estándar de Portlets. Ésta explica cuáles son los requisitos que se deben cumplir para crear aplicaciones que cumplan la especificación. ‣ http://www.jcp.org lunes 11 de junio de 2012
  • 101. Estrategias de desarrollo avanzado Introducción ‣ La web del JCP (Java Community Process) proporciona información muy interesante sobre las distintas especificaciones. ‣ Éstas se organizan en documentos llamados Java Specification Requests, habitualmente conocidos como JSRs. lunes 11 de junio de 2012
  • 102. Estrategias de desarrollo avanzado Introducción ‣ Existen dos versiones de la especificación Portlets, y se conocen como: ‣ JSR-168: Especificación de Portlets v 1.0 ‣ JSR-286: Especificación de Portlets v 2.0 lunes 11 de junio de 2012
  • 103. Estrategias de desarrollo avanzado ¿Qué es un portlet? ‣ Es una aplicación que genera una porción de contenido que puede ser incluido dentro de la página de un portal: Ventana del portlet Modos y estados del portlets Fragmento de marcado lunes 11 de junio de 2012
  • 104. Estrategias de desarrollo avanzado ¿Qué es un portlet? ‣ Es un componente web basado en tecnología Java que se encarga de procesar peticiones y generar contenido dinámico: ... public class MiPortlet extends GenericPortlet { private static final String NORMAL_VIEW = "/normal.jsp"; private static final String MAXIMIZED_VIEW = "/ maximized.jsp"; private static final String HELP_VIEW = "/help.jsp"; private PortletRequestDispatcher normalView; private PortletRequestDispatcher maximizedView; private PortletRequestDispatcher helpView; public void doView( RenderRequest request, RenderResponse response ) throws PortletException, IOException { if( WindowState.MINIMIZED.equals ( request.getWindowState() ) ) { ! return; } ... lunes 11 de junio de 2012
  • 105. Estrategias de desarrollo avanzado ¿Qué es un portlet? ‣ Los portales usan a los portlets como componentes de interface de usuario intercambiables que proporcionan la capa de presentación a un sistema de información. lunes 11 de junio de 2012
  • 106. Estrategias de desarrollo avanzado ¿Qué es un portlet? ‣ El contenido generado por un portlet se llama fragmento y, no es más que un trozo de código de marcado. ‣ Estos fragmentos tienen que cumplir una serie de reglas para que puedan agruparse con otros fragmentos para generar un documento completo. ‣ El contenido generado por un portlet se agrupa junto con el contenido de otros portlets para crear la página de un portal. ‣ El ciclo de vida de un portlet es controlado mediante el contenedor de portlets. lunes 11 de junio de 2012
  • 107. Estrategias de desarrollo avanzado ¿Qué es un portlet? ‣ Estados de la ventana: ‣ La ventana de un portlet se puede encontrar en diferentes estados. Los estados por defectos son: ‣ Normal. ‣ Maximizado. ‣ Minimizado. lunes 11 de junio de 2012
  • 108. Estrategias de desarrollo avanzado ¿Qué es un portlet? ‣ Estados de la ventana: Este botón hace que la ventana pase a ‣ Normal y minimizado: estado minimizado Si de nuevo se hace click en este botón se vuelve al estado normal lunes 11 de junio de 2012
  • 109. Estrategias de desarrollo avanzado ¿Qué es un portlet? ‣ Estados de la ventana: Este botón hace que la ventana pase a ‣ Normal y maximizado: estado maximizado Si se hace click en este botón se vuelve al estado normal lunes 11 de junio de 2012
  • 110. Estrategias de desarrollo avanzado ¿Quién puede construir un portlet? ‣ Desarrolladores que conocen las tecnologías JavaEE core: Servlets y JSP: ‣ La especificación de Portlets es muy similar a la especificación de Servlets. ‣ Conocida una, conocidas todas. ‣ Las especificación de Portlets trabaja con JSP para generar la vista. ‣ Desarrolladores JavaEE que conocen Framework de desarrollo: ‣ JavaServer Faces, ‣ Struts, ‣ etc. lunes 11 de junio de 2012
  • 111. Estrategias de desarrollo avanzado ¿Cómo se construye un portlet? ‣ Creación de una clase que hereda de GenericPortlet: lunes 11 de junio de 2012
  • 112. Estrategias de desarrollo avanzado ¿Cómo se construye un portlet? ‣ Ejemplo: ... public class PortletBasico extends GenericPortlet{ ... } lunes 11 de junio de 2012
  • 113. Estrategias de desarrollo avanzado ¿Cómo se construye un portlet? lunes 11 de junio de 2012
  • 114. Estrategias de desarrollo avanzado ¿Cómo se construye un portlet? ‣ Renderización: ‣ Como ya se ha comentado antes, esta clase abstracta implementa el método render() de la interface Portlet y proporciona otros métodos en los que delega la renderización del portlet en función del modo en el que se encuentra. ‣ Los modos de un portlet indican la función que está proporcionando en cada momento. La especificación define tres modos: ‣ view. ‣ help. ‣ edit. lunes 11 de junio de 2012
  • 115. Estrategias de desarrollo avanzado ¿Cómo se construye un portlet? ‣ Renderización: ‣ Sus métodos de renderización son: ‣ doView(): método llamado por el método render cuando el portlet se encuentra en modo view. ‣ doHelp(): método llamado por el método render cuando el portlet se encuentra en modo help. ‣ doEdit(): método llamado por el método render cuando el portlet se encuentra en modo edit. lunes 11 de junio de 2012
  • 116. Estrategias de desarrollo avanzado ¿Cómo se construye un portlet? ‣ Acciones: ‣ El método processAction() debe redefinirse para construir la acción que quiere desarrollar el portlet: public void processAction(ActionRequest request, ActionResponse response) ! ! ! throws PortletException, IOException { ! // Se recuperan los parámetros de la petición ! String nombre = request.getParameter("nombre"); ! String ruta = request.getParameter("ruta"); ! String contenido = request.getParameter("contenido"); ... } lunes 11 de junio de 2012
  • 117. Estrategias de desarrollo avanzado ¿Cómo se construye un portlet? ‣ Acciones: ‣ El contenedor de portlets llama al método processAction() para permitir que el portlet procese una acción asociada a la petición. ‣ Este método es invocado si la petición del cliente fue originada por una URL creada mediante el método RenderResponse.createActionURL(). lunes 11 de junio de 2012
  • 118. Estrategias de desarrollo avanzado ¿Cómo se construye un portlet? ‣ Construyendo acciones en un portlet: ‣ El método processAction() se ejecuta cada vez que un portlet tiene que realizar una acción. ‣ ¿Si tiene que ejecutar varias acciones? ¿el método processAction() tiene que manejar todas las acciones? ... public void processAction(...){ ... if(...){ }else if(){ } ... } lunes 11 de junio de 2012
  • 119. Estrategias de desarrollo avanzado ¿Cómo se construye un portlet? ‣ Construyendo acciones en un portlet: ‣ Gracias a la anotación @ProcessAction el portlet puede tener tantos métodos diferentes como acciones tenga que llevar a cabo. Evidentemente, la cabecera del método debe cumplir unos requisitos: @ProcessAction(name="guardarFichero") public void accion1(ActionRequest request, ActionResponse response) throws PortletException,IOException @ProcessAction(name="borrarFichero") public void accion2(ActionRequest request, ActionResponse response) throws PortletException,IOException lunes 11 de junio de 2012
  • 120. Estrategias de desarrollo avanzado Configuración ‣ Fichero portlet.xml. ‣ Fichero liferay-display.xml. ‣ Fichero liferay-portlet.xml. ‣ Fichero liferay-plugin-package.properties. lunes 11 de junio de 2012
  • 121. Estrategias de desarrollo avanzado Fichero portlet.xml ‣ El descriptor de despliegue estándar para portlets se llama portlet.xml. ‣ Es un fichero xml que permite definir las características de los portlets que se están manejando. ‣ Ejemplo: <?xml version="1.0" encoding="UTF-8"?> <portlet-app xmlns="http://java.sun.com/xml/ns/portlet/portlet- app_1_0.xsd" version="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/ portlet-app_1_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd"> <portlet> ... </portlet> </portlet-app> lunes 11 de junio de 2012
  • 122. Estrategias de desarrollo avanzado Fichero liferay-display.xml ‣ Este fichero permite definir la categoría donde se podrán encontrar el portlet dentro de Liferay una vez se despliegue. <?xml version="1.0"?> <!DOCTYPE display PUBLIC "-//Liferay//DTD Display 5.2.0//EN" "http://www.liferay.com/dtd/liferay-display_5_2_0.dtd"> <display> Identificador INTERNACIONALIZADO de la <category name=" category.sample "> categoría donde se quiere incluir el portlet <portlet id=" PortletBasico01 " /> </category> El atributo id debe coincidir </display> con el nombre del portlet que se ha definido en el fichero portlet.xml lunes 11 de junio de 2012
  • 123. Estrategias de desarrollo avanzado Fichero liferay-display.xml La categoría definida en el fichero liferay- display.xml determina la categoría donde se podrá encontrar lunes 11 de junio de 2012
  • 124. Estrategias de desarrollo avanzado Fichero liferay-portlet.xml ‣ Este fichero es la extensión de portlet.xml para Liferay. ‣ Se encarga de definir características avanzadas del portlet: ‣ icon: define el icono que aparece en la ventana del portlet. ‣ instanceable: si este elemento está a true significa que puede aparecer en la página tantas veces como se quiera. En cambio si su valor es false, sólo podrá aparecer una vez. ‣ css-class-wrapper: nombre del class asociado al div que va a envolver este portlet cuando se renderize en la página del portal. ‣ header-portlet-css. ‣ ... lunes 11 de junio de 2012
  • 125. Estrategias de desarrollo avanzado Fichero liferay-portlet.xml ‣ Ejemplo: <?xml version="1.0"?> <!DOCTYPE liferay-portlet-app PUBLIC "-//Liferay//DTD Portlet Application 5.2.0//EN" "http://www.liferay.com/dtd/liferay- portlet-app_5_2_0.dtd"> <liferay-portlet-app> <portlet> <portlet-name>PortletBasico01</portlet-name> <icon>/icon.png</icon> <instanceable>true</instanceable> <header-portlet-css>/css/test.css</header-portlet-css> <footer-portlet-javascript>/js/test.js</footer-portlet- javascript> </portlet> </liferay-portlet-app> lunes 11 de junio de 2012
  • 126. Estrategias de desarrollo avanzado Fichero liferay-plugin- package.properties name=PortletBasico01 module-group-id=liferay module-incremental-version=1 tags= short-description= change-log= page-url=http://www.liferay.com author=Liferay, Inc. licenses=MIT lunes 11 de junio de 2012
  • 127. Estrategias de desarrollo avanzado Ejercicio ‣ Paso 1: Listado de documentos. lunes 11 de junio de 2012
  • 128. Estrategias de desarrollo avanzado Ejercicio ‣ Paso 2: Creación de documentos. lunes 11 de junio de 2012
  • 129. Estrategias de desarrollo avanzado Ejercicio lunes 11 de junio de 2012
  • 130. Estrategias de desarrollo avanzado Plugin Ext ‣ Introducción. ‣ Estrategia de desarrollo. ‣ Trabajando con el entorno. ‣ Despliegue del plugin Ext. lunes 11 de junio de 2012
  • 131. Estrategias de desarrollo avanzado Introducción ‣ El plugin Extension es el plugin que proporciona un mayor nivel de personalización del portal Liferay. ‣ Se puede cambiar cualquier cosa del producto. ‣ Plugin Ext ha sido creado para proporcionar una forma de separar el código introducido por el programador y el código de Liferay, de tal forma que los desarrolladores pueden saber dónde empieza su código y dónde el de Liferay. ‣ No se debe modificar el código de Liferay directamente para realizar cambios en el producto. Se mantiene el código separado y el plugin se encarga de solapara tus cambios encima del código de Liferay. ‣ Esto también hace que las actualizaciones de versión sean más sencillas, dado que se puede actualizar Liferay y posteriormente, inyectar el plugin Ext para la nueva versión. lunes 11 de junio de 2012
  • 132. Estrategias de desarrollo avanzado Estrategia de desarrollo ‣ La estrategia para usar este plugin es muy simple: extender, no modificar. lunes 11 de junio de 2012
  • 133. Estrategias de desarrollo avanzado Trabajando con el entorno ‣ Clase StrutsPortlet. ‣ Fichero liferay-portlet.xml. ‣ Definición de acciones. ‣ Definición de la navegación. ‣ Páginas JSP. lunes 11 de junio de 2012
  • 134. Estrategias de desarrollo avanzado Clase StrutsPortlet ‣ Se encuentra en el paquete com.liferay.portlet. ‣ Es el portlet diseñado por Liferay para integrar el Framework Struts. ‣ El fichero portlet.xml debe tenerlo en cuenta: <?xml version="1.0"?> <portlet-app xmlns="http://java.sun.com/xml/ns/portlet/ portlet-app_2_0.xsd"version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema- instance" xsi:schemaLocation="http://java.sun.com/xml/ns/ portlet/portlet-app_2_0.xsd http://java.sun.com/ xml/ns/portlet/portlet-app_2_0.xsd"> <portlet> <portlet-name>portletEjercicio</portlet-name> <display-name>portletEjercicio</display-name> <portlet-class> com.liferay.portlet.StrutsPortlet </portlet-class> lunes 11 de junio de 2012
  • 135. Estrategias de desarrollo avanzado Clase StrutsPortlet ‣ Este portlet trabaja con parámetros iniciales que determinan las urls asociadas a los modos VIEW, HELP y EDIT, si existen. ‣ Se configuran en el fichero portlet.xml: <portlet> ! <portlet-name>ProyectoStruts</portlet-name> ! <display-name>ProyectoStruts</display-name> ! <portlet-class>com.liferay.portlet.StrutsPortlet</portlet- class> ! <init-param> ! ! <name>view-action</name> ! ! <value>/jsp/input</value> ! </init-param> ! <init-param> ! ! <name>help-action</name> ! ! <value>/jsp/help</value> ! </init-param> ... lunes 11 de junio de 2012
  • 136. Estrategias de desarrollo avanzado Fichero liferay-portlet.xml ‣ Se configura la ruta de Struts que se va a manejar: <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE liferay-portlet-app PUBLIC "-//Liferay//DTD Portlet Application 5.2.0//EN" "http://www.liferay.com/dtd/liferay- portlet-app_5_2_0.dtd"> <liferay-portlet-app> <portlet> <portlet-name>ProyectoStruts</portlet-name> <icon>/images/world.png</icon> <struts-path>jsp</struts-path> <use-default-template>true</use-default-template> <restore-current-view>true</restore-current-view> <instanceable>true</instanceable> <private-request-attributes>false</private-request- attributes> </portlet> ... lunes 11 de junio de 2012
  • 137. Estrategias de desarrollo avanzado Definición de acciones ‣ Las acciones son clases Java que heredan de PortletAction: public class Accion01 extends PortletAction { @Override public void processAction( ActionMapping mapping, ActionForm form, PortletConfig portletConfig, ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { ... ‣ Habitualmente se redefinen los métodos processAction y render. lunes 11 de junio de 2012
  • 138. Estrategias de desarrollo avanzado Definición de la navegación ‣ Se realiza mediante el fichero struts-config.xml. <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http:// jakarta.apache.org/struts/dtds/struts-config_1_2.dtd"> <struts-config> <action-mappings> <action path="/jsp/input" forward="/portlet/jsp/ listarUsuarios.jsp"></action> <action path="/jsp/borrar" type="acciones.BorrarUsuarioAction"input="/jsp/ inicio.jsp"> <forward name="exito" path="/portlet/jsp/ listarUsuarios.jsp"></forward> </action> lunes 11 de junio de 2012
  • 139. Estrategias de desarrollo avanzado Páginas JSP ‣ Se define de forma totalmente normal, pero debe encontrarse en la ruta html/portlet/. Ejemplo 1: <action path="/jsp/input" forward="/portlet/jsp/paginaPrueba.jsp"> </action> ‣ La página debe encontrarse en la ruta html/portlet/jsp/paginaPrueba.jsp. ‣ Ejemplo 2: <action path="/portal/layout" type="com.liferay.portal.action.LayoutAction"> ! <forward name="portal.layout" path="portal.layout" /> </action> <definition name="portal.layout" extends="portal"> ! <put name="content" value="/portal/layout.jsp" /> ! <put name="selectable" value="true" /> </definition> lunes 11 de junio de 2012
  • 140. Estrategias de desarrollo avanzado Despliegue del plugin Ext ‣ Los plugins Ext son plugins que se pueden desplegar en caliente como los hooks y los portlets, pero, cuidado, esto puede ser engañoso. ‣ Estos plugins son más parecidos al entorno Ext utilizado en anteriores versiones de Liferay en la forma de trabajar con él. ‣ Existen dos formas de desplegar un plugin Ext: ‣ Mediante los scripts Ant disponibles en Plugins SDK, especialmente deploy y direct-deploy. ‣ Creando un fichero war y desplegándolo manualmente en Liferay: ‣ Copiándolo en la carpeta deploy de la instalación. ‣ Mediante la interfaz web. lunes 11 de junio de 2012
  • 141. Estrategias de desarrollo avanzado Despliegue del plugin Ext ‣ Independientemente del proceso de despliegue utilizado, posteriormente, ocurre lo mismo, y no tiene nada que ver con lo que ocurre cuando se despliega otro tipo de plugin: ‣ Se crea ext-service.jar a partir del código que se encuentra en la carpeta ext-service/src. ‣ Se despliega este jar classpath global. El deployer hace esto después de extraerlo del war, o el script Ant lo hace como parte de direct-deploy. ‣ Se crea ext-impl.jar a partir del código que se encuentra en la carpeta ext-impl/src. ‣ El deployer o script entonces comienza a copiar los ficheros en Liferay. Primero, despliega cualquier fichero portal-*.properties o system- *.properties en la carpeta WEB-INF/classes. Y posteriormente, despliega el fichero ext-impl.jar en la carpeta WEB-INF/lib de Liferay. ‣ El deployer o el script copia las carpetas que existen en la carpeta ext- web en la carpeta de Liferay asociada integrando así los cambios con el código de Liferay. lunes 11 de junio de 2012
  • 142. Estrategias de desarrollo avanzado Despliegue del plugin Ext ‣ Debido a estas operaciones, el despliegue de un plugin Ext implica un posterior restart del servidor obligatorio. ‣ El código que aparece en el plugin Ext no se encuentra aislado, forma parte del código de Liferay. Se ejecuta como parte de la aplicación, de la misma forma que lo hace el código de Liferay. ‣ La primera consecuencia de todo esto es que NO se puede deshacer un proceso de despliege. Se necesita tener una copia limpia de nuestra instalación por si comentemos errores. ‣ Se recomienda hacer un proceso de despliegue incremental, siempre sabiendo que si se hace algo más podemos volver a la instalación de Liferay inicial. lunes 11 de junio de 2012
  • 143. Estrategias de desarrollo avanzado Despliegue del plugin Ext cd your-tomcat-install # deleting web application rm -rf webapps/*-ext # deleting jars and config files from Liferay find -name "ext-*" | xargs rm -rf # stopping Liferay bin/shutdown.sh ps ax | grep life #... wait until life ends ;) ....# ps ax | grep life #... wait until life ends ;) ....# ps ax | grep life #... wait until life ends ;) ....# # Starting Liferay bin/startup.sh tail -f logs/catalina.out lunes 11 de junio de 2012
  • 144. Estrategias de desarrollo avanzado Ejercicio ‣ Introducción. ‣ Creación de plugin Ext. ‣ Disponibilidad del portlet. ‣ Estado de la ventana del portlet. ‣ Visualización de contenidos. ‣ Inspección del portlet. ‣ Modificación del portlet. ‣ Conclusión. lunes 11 de junio de 2012
  • 145. Estrategias de desarrollo avanzado Introducción ‣ El portlet Mi cuenta/My Account es elemento muy habitual dentro de Liferay portal. lunes 11 de junio de 2012
  • 146. Estrategias de desarrollo avanzado Introducción ‣ Lamentablemente, por defecto, no se encuentra disponible para su uso en cualquier página de Liferay, sólo a través del panel de control. ‣ Vamos, aprovechando el plugin Ext, a realizar las modificaciones necesarias para que pueda ser utilizado en cualquier sitio. ‣ Posteriormente, lo personalizaremos para que muestre sólo la información que sea necesaria. lunes 11 de junio de 2012
  • 147. Estrategias de desarrollo avanzado Creación de plugin Ext ‣ Trabajando con Eclipse IDE y plugin SDK implica seguir un asistente. ‣ La estructura del proyecto, como ya es sabido, es tal que así: lunes 11 de junio de 2012
  • 148. Estrategias de desarrollo avanzado Disponibilidad del portlet ‣ El primer paso será, editar el fichero de sistema liferay- portlet.xml eliminando del portlet 2 la entrada <system>true</system>. ‣ De esa forma el portlet de administración My Account se encontrará disponible para ser utilizado. <liferay-portlet-app> <portlet> ! <portlet-name>2</portlet-name> ! <icon>/html/icons/my_account.png</icon> ! <struts-path>my_account</struts-path> ! ... ! <system>true</system> </portlet> lunes 11 de junio de 2012
  • 149. Estrategias de desarrollo avanzado Disponibilidad del portlet ‣ El segundo paso será modificar el plugin Ext previamente creado para añadir el fichero portal.xml un directorio llamado resource-actions previamente creado. lunes 11 de junio de 2012
  • 150. Estrategias de desarrollo avanzado Disponibilidad del portlet <portlet-resource> <portlet-name>125</portlet-name> <permissions> <supports> <action-key>ADD_TO_PAGE</action-key> <action-key>ACCESS_IN_CONTROL_PANEL</action-key> <action-key>CONFIGURATION</action-key> <action-key>EXPORT_USER</action-key> <action-key>VIEW</action-key> </supports> <community-defaults> <action-key>VIEW</action-key> </community-defaults> <guest-defaults> <action-key>VIEW</action-key> </guest-defaults> <guest-unsupported> <action-key>ACCESS_IN_CONTROL_PANEL</action-key> <action-key>CONFIGURATION</action-key> </guest-unsupported> </permissions> </portlet-resource> lunes 11 de junio de 2012
  • 151. Estrategias de desarrollo avanzado Estado de la ventana del portlet ‣ Por defecto, el portlet aparece minimizado y sólo si se maximiza se muestra la información del usuario. ‣ Esto es así debido a la configuración de una clase llamada ViewAction asociada al portlet. ‣ Para modificar su comportamiento, mediante el entorno Ext sobrescribimos dicha clase. lunes 11 de junio de 2012
  • 152. Estrategias de desarrollo avanzado Estado de la ventana del portlet ‣ Redefinir el método render: public class ViewAction extends PortletAction { public ActionForward render( ! ActionMapping mapping, ActionForm form, PortletConfig portletConfig, ! RenderRequest renderRequest, RenderResponse renderResponse)throws Exception { ! ! ... ! ! ! } } lunes 11 de junio de 2012
  • 153. Estrategias de desarrollo avanzado Visualización de contenidos ‣ Una vez resuelto el problema de la disponibilidad del portlet, se describe el proceso de personalización. lunes 11 de junio de 2012
  • 154. Estrategias de desarrollo avanzado Visualización de contenidos ‣ Se quiere modificar el portlet para que muestre algo tal que así, se quieren modificar las secciones y los elementos que aparecen en cada sección. lunes 11 de junio de 2012
  • 155. Estrategias de desarrollo avanzado Visualización de contenidos ‣ ¿Cómo se construye la barra lateral? ‣ ¿Y el panel de detalle? ‣ Obligatoriamente el programador necesita conocer el código de este portlet. ‣ StrutsPortlet: ‣ view-action: /my_account/view lunes 11 de junio de 2012
  • 156. Estrategias de desarrollo avanzado Inspección del portlet ‣ Se busca el portlet en el fichero portlet.xml identificando el parámetro view-action. <portlet> <portlet-name>2</portlet-name> <display-name>My Account</display-name> <portlet-class> com.liferay.portlet.StrutsPortlet </portlet-class> <init-param> <name>view-action</name> <value>/my_account/view</value> </init-param> ! ! ... </portlet> lunes 11 de junio de 2012
  • 157. Estrategias de desarrollo avanzado Inspección del portlet ‣ Con ese parámetro se busca en el fichero struts-config.xml: ... <action path="/my_account/view" type="com.liferay.portlet.myaccount.action.ViewAction"> <forward name="portlet.my_account.edit_user" path="portlet.enterprise_admin.edit_user" /> <forward name="portlet.my_account.view" path="portlet.my_account.view" /> </action> ... lunes 11 de junio de 2012
  • 158. Estrategias de desarrollo avanzado Inspección del portlet ‣ Con el atributo path de la entrada forward busco en el fichero tiles-def.xml: ... <definition name="portlet.enterprise_admin.edit_user" extends="portlet.enterprise_admin"> ! <put name="portlet_content" value="/portlet/enterprise_admin/edit_user.jsp" /> </definition> ... ‣ La página edit_user.jsp del portlet de admin es el punto de partida. lunes 11 de junio de 2012