viernes, 11 de noviembre de 2011

Integrando WebCenter Spaces en WebCenter Portal

Cuando se desarrolla un portal con WebCenter Portal Framework es posible integrar la funcionalidad de WebCenter Spaces en el mismo.

Enlace a la entrada tutorial de como configurarlo


¿Cómo integrar WebCenter Spaces API?

WebCenter Spaces ofrece un Web Service que expone toda la funcionalidad con respecto a:
  • Creación y gestión de grupos de espacios y plantillas.
  • Gestión de usuarios y los espacios a los que pertenecen.
  • Obtener información acerca de los espacios y plantillas de los mismos.
Los pasos a seguir para la obtención del Data Control que nos permitirá el uso de manera fácil y transparente la funcionalidad ofrecida por el WebCenter Spaces API Client son los siguientes:
  • Primero se debe comprobar que hay acceso al WSDL de WebCenter Spaces atacando a la siguiente URL. http://host:[spacesport]/webcenter/SpacesWebService?WSDL
    XML que define el WSDL de Spaces


    WSDL de Spaces para probarlo 
  • Adherir la tecnología Web Service al proyecto de WebCenter (o aplicación ADF). Para ello hacer click derecho en el proyecto y navegar hasta Project Properties > Technology Scope y añadir la tecnlogía Web Services que permitirá la creación de Data Controls a partir de WSDL's.

    Tecnología Web Service
  • Haciendo click derecho en el proyecto de WebCenter o aplicación ADF y haciendo click en New podremos ver que ahora permite crear Data Control a partir de WebServices. Seleccionar Web Service Data Control para iniciar el wizard que nos ayudará a configurar el Data Control a partir del WSDL.
    Creación de Web Service Data Control
  • En el primer paso del Wizard configurar la URL de conexión al WSDL y el nombre lógico que se quiere dar al Data Control.

    Registro de la dirección del WSDL para obtención de Data Control
  • Seleccionar las operaciones del WSDL que se requieran para el Data Control.

    Operaciones del WSDL que se desean en el Data Control
  • Con respecto al paso de Endpoint Authentication hay que tener en cuenta que la conexión entre la aplicación y WebCenter Spaces debe ser segura. Para ello es necesario seguir la configuración de la documentación. http://docs.oracle.com/cd/E15523_01/webcenter.1111/e10148/jpsdg_spaces.htm#CIHEIHIH
    http://docs.oracle.com/cd/E14571_01/webcenter.1111/e12405/wcadm_security_wss.htm#BGBFIIGE
  • Finalmente se generará un Data Control que permitirá mediante Drag & Drop sobre las páginas de la aplicación la creación de formularios e interfaces de manejo de WebCenter Spaces API.

    WebCenter Spaces API Data Control del WSDL
Por último comentar algunas ventajas e inconvenientes de esta solución:
  • Requiere la aplicación de WebCenter Spaces corriendo y consumiendo recursos del entorno.
  • Si existen Task Flows que deben ser compartidos o pueden ser usados en WebCenter Portal y Spaces deberían desplegarse como Shared-library para que el mantenimiento de los mismos sea más eficiente.
  • La parte de Autenticación que dejo indicada hacia la documentación oficial puede ser la más tediosa. Consiste en generar un keystore productor registrado en el dominio de WebCenter Spaces y un consumidor con el mapeo correspondiente para el dominio de nuestra aplicación. Siguiendo los pasos de la documentación oficial es trivial establecer los valores del WS-Security necesarios para la conexión segura.
  • Recomiendo que WebCenter Portal y WebCenter Spaces tengan un mecanismo de SSO o compartan LDAP.
  • Existen otras opciones como REST API (en la documentación oficial) ó generar las clases Java automáticas a partir del Web Service en vez de usar el Data Control.
Referencias:

lunes, 7 de noviembre de 2011

Extendiendo Oracle Composer

Oracle Composer es un mecanismo de personalización y configuración en tiempo real de los distintos componentes ADF de nuestra aplicación o portal.

En la entrada os traigo cómo añadir nuevos paneles a la barra de herramientas de Oracle Composer. Además, también os comento cómo extender el panel de propiedades asociado a componentes y manejar los eventos de Oracle Composer.

Oracle Composer con un Panel propio adherido a la barra de herramientas
Para añadir nuevos paneles hay que seguir los siguientes pasos:

  • Crear un Task Flow que será el responsable de realizar las operaciones pertinentes de nuestro nuevo panel.
    Task Flow de cambio de Logo
  • Crear el archivo de configuración de extensiones de Oracle Composer, pe_ext.xml, en la carpeta META-INF de nuestro proyecto (este archivo no se crea por defecto con WebCenter ni ADF Applications).
    Archivo pe_ext.xml con un panel nuevo
  • El archivo pe_ext.xml contiene los siguientes elementos:
    • <panels><panel></panel>...</panel>: Contiene la definición de los nuevos paneles así como su "mapeo" a los Task Flow que ejecuta.(Incluido en el ejemplo decargable).
      Nuevo panel a la barra de herramientas

    • <property-panels><property-panel></property-panel>...</property-panels>: Oracle Composer permite añadir/eliminar propiedades que trae consigo los componentes y Task Flow ADF al editarlos con Oracle Composer. Para ser más especifico, cuando se edita una página con Oracle Composer, cada componente que forma parte de ella posee un icono, normalmente "llave inglesa" que da acceso a la configuración de sus propiedades. En estas propiedades se pueden configurar tanto estilos, como parámetros de entrada del mismo. Extendiendo Oracle Composer se puede eliminar o limitar ciertas propiedades de los componentes o Task Flow que queramos a la vez que también se puede añadir nuevas pestañas a la ventana de configuración con configuraciones Custom. (No incluido en el ejemplo decargable).
      Propiedades del componente "Recuadro"/Box
    • <event-handlers>...</event-handlers>: Los manejadores de eventos sirven para sobrescribir los eventos disparados por Oracle Composer. Se puede introducir código propio tanto en eventos de salvado, cancelación e incluso cerrado de Oracle Composer.
  • En el archivo de configuración, adf-config.xml debe añadirse la configuración referente a <pe:page-editor-config> para registrar los paneles que deben mostrarse en Oracle Composer. Notar que por defecto el atributo show-default-addons de <addon-panels> está a false por lo que si no lo establecemos a true tendrá que definirse manualmente cada panel de Composer (incluidos los denominados "por defecto").
    adf-config sin declarar show-default-addons
    adf-config con los default-addons por defecto
Por último comentar que hay ciertos paneles de Oracle Composer que no están habilitados por defecto:
  • Customization Manager: Es un panel que permite la gestión de la personalización de la página (datos del repositorio MDS) en caliente sin tener que importar/exportar con comandos WSLT.
    Enlace a la documentación

    <addon-panel name="oracle.adf.pageeditor.addonpanels.customization-manager" rendered="#{securityContext.userInAppRole['Administrator']}"/>
  • Resource String Editor. Sirve para contribuir literales en caliente. Lo realiza en el Bundle registrado de Composer. Enlace a la documentación.
Os dejo un ejemplo a descargar que contiene lo siguiente:
  • Una aplicación ADF exportable a ADF JAR library en caso de querer usarla en una aplicación de WebCenter Portal.
  • La aplicación ADF contiene un Task Flow para cambiar, a través de Oracle Composer, el Logo de una imagen de la página en función a unos valores establecidos en Managed Beans que gestiona. la URL de la imagen puede ser relativa o absoluta.
  • Recomiendo observar los ficheros pe_ext.xml, adf-config.xml y la página home.jspx para observar la lógica que sigue la extensión de Oracle Composer. Además, la clase Java SaveHandler que gestiona el evento de guardado de Composer.
Desarrollado en: JDeveloper 11.1.1.4

Referencia a la documentación oficial: Extending Runtime Capabilities Using Oracle Composer.