Actualizar recursos de tiempo de ejecución de cliente Faces en un proyecto Web

Los recursos de tiempo de ejecución del cliente JavaServer Faces enviados con WebSphere Studio Application Developer V5.1.x se han actualizado para Rational Application Developer V6.0.1. Si desea seguir desarrollando proyectos Web creados con esta versión anterior del producto, es recomendable que actualice los recursos de tiempo de ejecución del cliente Faces a los últimos niveles.

En Rational Application Developer V6.0.1, las actualizaciones de recursos de tiempo de ejecución de cliente Faces ocurren automáticamente cuando se importa un proyecto Web o se abre un área de trabajo que contiene recursos no actualizados. Después de importar un proyecto Web o abrir un área de trabajo de WebSphere Studio Application Developer V5.1.x a Rational Application Developer V6.0.1, se le solicitará actualizar los recursos de tiempo de ejecución del cliente Faces a los últimos niveles.

Actualizar automáticamente recursos de tiempo de ejecución

Para actualizar automáticamente los recursos de tiempo de ejecución del cliente Faces para un proyecto Web:
  1. Importe un proyecto Web (o un área de trabajo) con contenido de cliente Faces de WebSphere Studio Application Developer V5.1.x. Se abre la ventana Migración de proyectos.
    Nota: Si la ventana Migración de proyectos no se abre, el valor de preferencia de construcción automática esté probablemente inhabilitado. En el Explorador de proyecto, pulse con el botón derecho del ratón sobre el proyecto Web y seleccione Construir > Proyecto; el proceso de reconstrucción de un proyecto abre la ventana Migración de proyectos.
  2. Si tiene otros proyectos Web con contenido de cliente Faces en el área de trabajo, marque Aplicar esta opción a cualesquiera otros proyectos que necesiten actualizarse y se actualizarán todos los proyectos Web.
  3. Pulse una de las opciones siguientes:
    • para realizar la actualización automáticamente.
    • Más tarde para diferir la actualización. Para actualizar automáticamente los recursos de tiempo de ejecución después de seleccionar Más tarde, debe cerrar y reabrir el proyecto Web o reiniciar el entorno de trabajo antes de reconstruir el proyecto Web. Si ha inhabilitado las construcciones automáticas, pulse con el botón derecho del ratón sobre el proyecto Web y seleccione Construir proyecto.
    • Nunca para mantener los recursos de tiempo de ejecución en un nivel anterior. Si elige Nunca y se queda intencionadamente con los recursos de tiempo de ejecución en un nivel anterior, no se le volverá a solicitar que los actualice. Más adelante tendrá que actualizar los recursos de tiempo de ejecución manualmente si los necesita.
  4. En la carpeta Recursos Java > JavaSource del proyecto Web, suprima todos los paquetes de clase de mediador de datos de cliente que sigan el convenio de denominación com.ibm.dynwdo4jsmediators.<client-data-name>. No suprima el paquete llamado com.ibm.dynwdo4jsmediators. Este paquete contiene metadatos (archivos ecore y emap) para los datos de cliente del proyecto que se utilizarán para regenerar los mediadores.
  5. En la carpeta Recursos Java > JavaSource del proyecto Web, abra el archivo OdysseyBrowserFramework.properties y suprima las entradas para EMAP_FILES y ECORE_FILES.
  6. Para cada objeto de datos de la vista Datos de cliente:
    1. Pulse con el botón derecho del ratón y seleccione Configurar.
    2. En la pestaña Avanzadas, pulse Regenerar a partir de datos del lado del servidor para regenerar todos los mediadores para el objeto de datos.

Actualizar manualmente recursos de tiempo de ejecución

Para actualizar manualmente los recursos de tiempo de ejecución del cliente Faces para un proyecto Web:
  1. Siga los pasos de la sección Actualizar manualmente recursos de tiempo de ejecución de Actualizar recursos de tiempo de ejecución de Faces en un proyecto Web.
  2. Siga los pasos 4-6 de la sección anterior Actualizar automáticamente recursos de tiempo de ejecución.

Pueden producirse problemas al cambiar el servidor destino de un proyecto que contenga componentes de cliente Faces de WebSphere Application Server V5.1 a V6.0.

Hay dos problemas que pueden producirse al cambiar el servidor destino de un proyecto que contenga componentes de cliente Faces de WebSphere Application Server V5.1 a V6.0:
  • Las clases de mediador de datos de cliente que ya se hayan generado no se compilarán más. Deben regenerarse un JSP a la vez.
    1. Abra el archivo OdysseyBrowserFramework.properties que se encuentra en la carpeta origen Java raíz. Guarde el contenido para utilizarlo posteriormente.
    2. En el archivo OdysseyBrowserFramework.properties, para cada JSP del proyecto Web que contenga datos de cliente Faces, busque las entradas <client-data-name>.ecore y <client-data-name>.emap correspondientes a las propiedades EMAP_FILES y ECORE_FILES.
    3. Guarde solo las entradas coincidentes para los datos de cliente en el JSP y suprima el resto de entradas.
      Por ejemplo, si la página actual tiene datos de cliente llamados ACCOUNT y el archivo de propiedades tenía una entrada como esta:
      EMAP_FILES=com\\ibm\\dynwdo4jsmediators/account.emap com\\ibm\\dynwdo4jsmediators/orders.emap
      debe suprimir com\\ibm\\dynwdo4jsmediators/orders.emap de la entrada. La entrada tendrá ahora el aspecto siguiente:
      EMAP_FILES=com\\ibm\\dynwdo4jsmediators/account.emap
    4. Guarde el archivo de propiedades.
    5. Seleccione un objeto de datos de cliente en un JSP, pulse con el botón derecho del ratón y seleccione Configurar.
    6. En la pestaña Avanzadas, pulse Regenerar todo. Esto regenerará todos los artefactos necesarios para todos los datos de cliente en el JSP actual.
    7. Repita los pasos 2-6 para cada JSP que contenga datos de cliente en el proyecto Web.
    8. Después de regenerar las clases de mediador de datos de cliente, quedarán algunas clases de mediador que no compilarán. Se trata de mediadores para elementos de esquema que ya no se utilizan en Objetos de datos de servicio (SDO) en V6.x y que siguen el convenio de denominación *_DataGraphSchema_wdo4js_*.java y *_RootDataObject_wdo4js_*.java. Suprima estas clases de mediador del proyecto Web para evitar estos errores de compilación.
    9. Una vez que la actualización se haya realizado satisfactoriamente, restaure el contenido original del archivo OdysseyBrowserFramework.properties.
  • Los componentes de cliente Faces de vista de árbol enlazados a los WDO no pueden ejecutarse en el servidor después de cambiar el servidor destino del proyecto a WebSphere Application Server V6.0. La solución consiste en modificar la vista del fuente del JSP para cambiar todos los códigos de className para que utilicen la clase DataObject de SDO en lugar de la clase DataObject de WDO. Por ejemplo, para un WDO llamado account:
    1. Para el objeto raíz, cambie el código className de className="com.ibm.etools.wdo.DataObject(DynWDO`account`RootDataObject)" a className="commonj.sdo.DataObject(DynWDO`account`DataGraphRoot)".
    2. Para todos los nodos hijo, cambie el código className de className="com.ibm.etools.wdo.DataObject(DynWDO`account`ACCOUNT)" a className="commonj.sdo.DataObject(DynWDO`account`ACCOUNT)", donde ACCOUNT es el nombre del nodo de datos.

Actualizar a los manejadores y procesadores Diff automatizados

Los procesadores y los manejadores Diff se generan ahora automáticamente. Si escribió manejadores y procesadores Diff para los componentes de cliente Faces en WebSphere Studio V5.1.x, es recomendable descartar ese código y utilizar los procesadores y manejadores generados automáticamente:
  1. Genere los manejadores y procesadores Diff nuevos en cada objeto de datos de cliente en el proyecto Web.
    1. Seleccione el Objeto de datos de cliente, pulse con el botón derecho del ratón y seleccione Configurar.
    2. En la pestaña Avanzadas, pulse Regenerar todo.
  2. Elimine el código escrito para invocar los procesadores y manejadores Diff ya que los procesadores y manejadores generados se invocan automáticamente. Por ejemplo, este código se utiliza para el evento Command para el componente de botón de mandato:
    String Diff = getClientData1().getDiffStr();
    if (DiffProcessor.Synch(getRoot(), Diff) == true)
     return "";
    return "failure";
  3. Elimine del proyecto Web los archivos que corresponden a los manejadores y procesadores personalizados creados.

Conservar los procesadores y los manejadores Diff personalizados escritos para V5.1.x

Aunque esto no es recomendable, si decide que debe mantener los manejadores y procesadores Diff de V5.1.x, deberá modificarlos para que funcionen en V6.0 ya que la interfaz DiffHandler y la clase DiffInfo han cambiado.
  • La interfaz DiffHandler ha cambiado de la manera siguiente:
    • El método handle ahora lanza Exception además de DiffException.
    • El método find nuevo lo utiliza la infraestructura para buscar objetos.
    • El método getId nuevo se utiliza para depurar y permite que la infraestructura imprima el valor de un objeto.

    Los métodos find y getId los utilizan internamente los DiffHandler generados. Para los DiffHandler personalizados puede implementar métodos vacíos para que se ajusten a la interfaz. La infraestructura llamará ahora a estos métodos.

    La interfaz DiffHandler es ahora:
    public interface DiffHandler
     {
       public void   handle(DiffInfo Diff) throws DiffException, Exception;
       public Object find  (DiffInfo Diff) throws DiffException, Exception;
       public String getId (DiffInfo Diff, boolean Original);
     }
  • La clase DiffInfo ha cambiado de la forma siguiente:
    • El método ArrayList getAncestors() se ha sustituido por el método DiffInfo getParent() que proporciona una forma más fácil de acceder a la información para cada objeto en el árbol de ancestros de forma recursiva.
    • Los métodos getCurrent() y getOriginal() ahora devuelven un objeto DataObject en lugar de un objeto EObject. No es obligatorio que cambie el código para utilizar el objeto DataObject. Sin embargo, la interfaz DataObject es más fácil y más intuitiva de utilizar que EObject. Puede convertir temporalmente un objeto DataObject en un objeto EObject fácilmente para el código existente.
    • Se ha añadido un método getPropertyName() de String nuevo para identificar el nombre de propiedad al que se aplica este objeto. Esto es importante si, por ejemplo, una clase dada tiene dos propiedades del mismo tipo. Anteriormente en la clase DiffInfo el código no hubiera podido diferenciar entre ambas propiedades.
    La clase DiffInfo es ahora:
    public class DiffInfo
     {
       public char       getCrud()
       public DataObject getCurrent()
       public String     getEClassName()
       public DataObject getOriginal()
       public String     getPropertyName()
       public DiffInfo   getParent()
     }
    Nota: La clase DiffInfo ya no está soportada para uso público ya que los procesadores y manejadores Diff se generan automáticamente. Mantener los manejadores antiguos solo es una solución temporal y se aconseja encarecidamente que se utilicen los manejadores automatizados.
Cambios en los componentes de cliente Faces en V6.0:
  • Soporte para WebSphere Application Server V6.0.
  • Soporte para Objetos de datos de servicio (SDO) en WebSphere Application Server V6.0.
  • Los datos EGL se soportan ahora como datos de cliente.
  • Los procesadores Diff y los manejadores se generan automáticamente.
  • Hay eventos nuevos para los componentes siguientes:
    • TabbedPanel: onInitialPageShow
    • Tree: onNodeExpand, onNodeCollapse, onExpand, onCollapse
    • DataGrid: onPage, onSort, onFilter
Tareas relacionadas
Actualizar recursos de tiempo de ejecución de Faces para proyectos Web de Rational Application Developer V6.0
Actualizar recursos de tiempo de ejecución de Faces en un proyecto Web
Actualizar recursos de tiempo de ejecución de Faces en un proyecto de portlet
Comentarios
(C) Copyright IBM Corporation 2000, 2005. Reservados todos los derechos.