Atualizando Recursos de Tempo de Execução Faces Client em um Projeto da Web

Os recursos de tempo de execução JavaServer Faces Client fornecidos originalmente no WebSphere Studio Site Developer V5.1.x foram atualizado para o Rational Web Developer V6.0.1. Se você quiser continuar o desenvolvimento em projetos da Web criados com essa versão anterior do produto, recomendamos a atualização dos recursos de tempo de execução Faces Client para os níveis mais recentes.

No Rational Web Developer V6.0.1, as atualizações dos recursos de tempo de execução Faces Client ocorrem automaticamente quando um projeto da Web é importado ou um espaço de trabalho, que contém recursos desatualizados, é aberto. Depois de importar um projeto da Web ou abrir um espaço de trabalho do WebSphere Studio Site Developer V5.1.x Rational Web Developer V6.0.1, você receberá um aviso para atualizar os recursos de tempo de execução Faces Client para os níveis mais recentes.

Atualizando automaticamente os recursos de tempo de execução

Para atualizar os recursos de tempo de execução Faces Client automaticamente para um projeto da Web:
  1. Importe um projeto da Web (ou um espaço de trabalho) com conteúdo do Faces Client do WebSphere Studio Site Developer V5.1.x. A janela Project Migration (Migração de Projetos) é aberta.
    Nota: Se a janela Project Migration (Migração de Projetos) não for aberta, sua configuração de preferência automática de construção será provavelmente desativada. No Explorer do Projeto, clique com o botão direito do mouse no projeto da Web e selecione Build (Construir) > Project (Projeto); o processo de reconstrução de um projeto é aberto na janela Project Migration (Migração de Projetos).
  2. Se você tiver outros projetos da Web com conteúdo do Faces Client no espaço de trabalho, marque Apply this choice to any other projects that need to be upgraded (Aplicar essa opção a todos os projetos dos quais é preciso fazer upgrade) para que todos os projetos da Web sejam atualizados.
  3. Clique em um dos seguintes:
    • Yes (Sim) para concluir a atualização automaticamente.
    • Later (Mais Tarde) para adiar a atualização. Para atualizar os recursos de tempo de execução automaticamente depois de selecionar Later (Mais Tarde), você deve fechar e reabrir o projeto da Web ou reiniciar o workbench antes de reconstruir o projeto da Web. Se você desativou as construções automáticas, clique com o botão direito do mouse no projeto da Web e selecione Build Project (Construir Projeto).
    • Never (Nunca) para manter os recursos de tempo de execução no nível anterior. Se você escolher Never (Nunca) e intencionalmente ficar com os recursos de tempo de execução do nível anterior, não receberá nenhum outro aviso de atualização. No futuro, você terá que atualizar os recursos de tempo de execução manualmente se precisar deles.
  4. Na pasta Java Resources (Recursos Java) > JavaSource no projeto da Web, exclua todos os pacotes de classe mediadores de dados do cliente com a convenção de nomenclatura com.ibm.dynwdo4jsmediators.<client-data-name>. Não exclua o pacote chamado com.ibm.dynwdo4jsmediators. Esse pacote contém metadados (arquivos ecore e emap) para os dados do clientes no seu projeto que serão utilizados para gerar novamente os mediadores.
  5. Na pasta Java Resources (Recursos Java) > JavaSource no projeto da Web, abra o arquivo OdysseyBrowserFramework.properties e exclua as entradas para EMAP_FILES e ECORE_FILES.
  6. Para cada objeto de dados na visualização Dados do Cliente:
    1. Clique com o botão direito do mouse e selecione Configure (Configurar).
    2. Na guia Advanced (Avançado), clique em Regenerate from server-side data (Gerar novamente a partir dos dados do lado do servidor) para gerar novamente todos os mediadores para o objeto de dados.

Atualizando manualmente os recursos de tempo de execução

Para atualizar os recursos de tempo de execução Faces Client manualmente para um projeto da Web:
  1. Conclua as etapas Atualizando Manualmente Recursos de Tempo de Execução em Atualizando Recursos de Tempo de Execução Faces em um Projeto da Web.
  2. Conclua as etapas de 4 a 6 da seção Atualizando Automaticamente os Recursos de Tempo de Execução acima.

Podem ocorrer problemas durante a alteração do servidor de destino de um projeto contendo componentes Faces Client do WebSphere Application Server V5.1 para o V6.0.

Há dois problemas que podem ocorrer durante a alteração do servidor de destino de um projeto contendo componentes Faces Client do WebSphere Application Server V5.1 para o V6.0:
  • As classes de mediadores de dados do cliente que já foram geradas não serão mais compiladas. Elas precisam ser geradas novamente em um JSP por vez:
    1. Abra o arquivo OdysseyBrowserFramework.properties localizado na pasta de origem Java da raiz. Salve o conteúdo para uso futuro.
    2. No arquivo OdysseyBrowserFramework.properties, para cada JSP no projeto da Web contendo dados do Faces Client, localize as entradas <client-data-name>.ecore e <client-data-name>.emap para as propriedades EMAP_FILES e ECORE_FILES.
    3. Mantenha apenas as entradas correspondentes para os dados do cliente no JSP e exclua todas as outras entradas.
      Por exemplo, se a página atual tiver Dados de Cliente denominados ACCOUNT e seu arquivo de propriedades tiver uma entrada como:
      EMAP_FILES=com\\ibm\\dynwdo4jsmediators/account.emap com\\ibm\\dynwdo4jsmediators/orders.emap
      você deverá excluir com\\ibm\\dynwdo4jsmediators/orders.emap da entrada. A entrada seria agora semelhante a esta:
      EMAP_FILES=com\\ibm\\dynwdo4jsmediators/account.emap
    4. Salve o arquivo de propriedades.
    5. Selecione um objeto de dados do cliente em um JSP e, em seguida, clique com o botão direito do mouse e selecione Configure (Configurar).
    6. Na guia Advanced (Avançado), clique em Regenerate All (Gerar Tudo Novamente). Isso irá gerar novamente todos os artefatos necessários para todos os dados do cliente no JSP atual.
    7. Repita as etapas de 2 a 6 para cada JSP contendo dados do cliente no seu projeto da Web.
    8. Depois de gerar novamente as classes de mediadores de dados do cliente, ainda haverá algumas classes de mediadores que não serão compiladas. Esses são os mediadores para elementos do esquema não mais utilizados nos SDOs (Service Data Objects) no V6.x e têm a convenção de nomenclatura *_DataGraphSchema_wdo4js_*.java e *_RootDataObject_wdo4js_*.java. Exclua essas classes de mediadores do projeto da Web para evitar esses erros de compilação.
    9. Após a conclusão bem-sucedida da atualização, restaure o conteúdo original do arquivo OdysseyBrowserFramework.properties.
  • Os componentes Faces Client da visualização em Árvore ligados aos WDOs falham ao serem executados no servidor após a alteração do servidor de destino do projeto para WebSphere Application Server V6.0. A solução alternativa é modificar a visualização de origem do JSP para alterar todas as tags className para utilizar a classe DataObject do SDO em vez da classe DataObject do WDO. Por exemplo, para um WDO chamado account:
    1. Para o objeto raiz, altere a tag className de className="com.ibm.etools.wdo.DataObject(DynWDO`account`RootDataObject)" para className="commonj.sdo.DataObject(DynWDO`account`DataGraphRoot)".
    2. Para todos os nós-filho, altere a tag className de className="com.ibm.etools.wdo.DataObject(DynWDO`account`ACCOUNT)" para className="commonj.sdo.DataObject(DynWDO`account`ACCOUNT)", em que ACCOUNT é o nome do nó de dados.

Fazendo Upgrade para processadores e rotinas de tratamento Diff automatizados

Os processadores e as rotinas de tratamento Diff agora são geradas automaticamente. Se você gravou rotinas de tratamento e processadores Diff para os componentes Faces Client no WebSphere Studio V5.1.x, recomendamos descartar aquele código e utilizar os processadores e as rotinas de tratamento gerados automaticamente:
  1. Gere os novos processadores e rotinas de tratamento Diff em cada objeto de dados do cliente no projeto da Web.
    1. Selecione o objeto de dados do cliente, clique com o botão direito do mouse e selecione Configure (Configurar).
    2. Na guia Advanced (Avançado), clique em Regenerate All (Gerar Tudo Novamente).
  2. Remova o código gravado para chamar o processador e as rotinas de tratamento Diff, pois os processadores e as rotinas de tratamento gerados são chamados automaticamente. Um exemplo típico de onde esse código era utilizado seria no evento Comando para o componente Botão de comandos, como:
    String Diff = getClientData1().getDiffStr();
    if (DiffProcessor.Synch(getRoot(), Diff) == true)
     return "";
    return "failure";
  3. Remove os arquivos correspondentes às rotinas de tratamento e aos processadores personalizados antigos criados no projeto da Web.

Mantendo os processadores e as rotinas de tratamento personalizados gravados para V5.1.x

Embora isso não seja recomendados, se você decidir que precisa manter as rotinas de tratamento e os processadores Diff do V5.1.x, eles deverão ser modificados para funcionarem no V6.0, à medida que a interface DiffHandler e a classe DiffInfo class é alterada.
  • A interface DiffHandler foi alterada da seguinte forma:
    • O método handle agora emite Exception, além de DiffException.
    • O novo método find é utilizado pela estrutura para localizar objetos.
    • O novo método getId é utilizado para depuração e permite que a estrutura imprima o valor de um objeto.

    Os métodos find e getId são utilizados internamente pelos DiffHandlers gerados. Para seus DiffHandlers personalizados, você pode implementar métodos vazios simplesmente para obter conformidade com a interface. Esses métodos não serão chamados pela estrutura.

    A interface DiffHandler é agora:
    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);
     }
  • A classe DiffInfo foi alterada da seguinte forma:
    • O método ArrayList getAncestors() foi substituído pelo método DiffInfo getParent(), que oferece uma maneira mais fácil de acessar as informações de cada objeto na árvore de ascendentes de um modo recursivo.
    • Os métodos getCurrent() e getOriginal() agora retornam um objeto DataObject em vez de um objeto EObject. Não é obrigatório alterar o código para utilizar o objeto DataObject. Entretanto, a interface DataObject é muito mais fácil e mais intuitiva para ser utilizada que EObject. Você pode converter facilmente um objeto DataObject para um objeto EObject para o código existente.
    • Um novo método String getPropertyName() foi incluído para identificar o nome da propriedade à qual esse objeto se aplica. Isso será importante se, por exemplo, uma determinada classe tiver duas propriedades do mesmo tipo. Anteriormente na classe DiffInfo, o código não conseguiria diferenciar entre as duas propriedades.
    A classe DiffInfo é agora:
    public class DiffInfo
     {
       public char       getCrud()
       public DataObject getCurrent()
       public String     getEClassName()
       public DataObject getOriginal()
       public String     getPropertyName()
       public DiffInfo   getParent()
     }
    Nota: A classe DiffInfo não é mais suportada para utilização pública porque agora os processadores e rotinas de tratamento Diff são gerados automaticamente. Manter suas rotinas de tratamento antigas é uma solução apenas temporária e é bastante recomendável que as rotinas de tratamento automatizadas sejam utilizadas.
Alterações nos componentes Faces Client no V6.0
  • Suporte para o WebSphere Application Server V6.0.
  • Suporte para o SDO (Service Data Objects) no WebSphere Application Server V6.0.
  • Os dados EGL são agora suportados como dados de cliente.
  • Os processadores e rotinas de tratamento Diff são gerados automaticamente.
  • Há novos eventos nos seguintes componentes:
    • TabbedPanel: onInitialPageShow
    • Árvore: onNodeExpand, onNodeCollapse, onExpand, onCollapse
    • DataGrid: onPage, onSort, onFilter
Tarefas relacionadas
Atualizando Recursos de Tempo de Execução Faces para Projetos da Web do Rational Web Developer V6.0
Atualizando Recursos de Tempo de Execução Faces em um Projeto da Web
Feedback
(C) Copyright IBM Corporation 2000, 2005. Todos os Direitos Reservados.