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:
- 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 ; o processo de reconstrução de um
projeto é aberto na janela Project Migration (Migração de Projetos).
- 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.
- 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.
- Na pasta 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.
- Na pasta no projeto da Web, abra o arquivo OdysseyBrowserFramework.properties
e exclua as entradas para EMAP_FILES e ECORE_FILES.
- Para cada objeto de dados na visualização Dados do Cliente:
- Clique com o botão direito do mouse e selecione Configure (Configurar).
- 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:
- 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.
- 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:
- Abra o arquivo OdysseyBrowserFramework.properties localizado na pasta de origem Java
da raiz. Salve o conteúdo para uso futuro.
- 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.
- 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
- Salve o arquivo de propriedades.
- 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).
- 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.
- Repita as etapas de 2 a 6 para cada JSP contendo dados do cliente no seu projeto da Web.
- 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.
- 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:
- 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)".
- 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:
- Gere os novos processadores e rotinas de tratamento Diff em cada objeto de dados
do cliente no projeto da Web.
- Selecione o objeto de dados do cliente, clique com o botão direito do mouse e selecione Configure (Configurar).
- Na guia Advanced (Avançado), clique em Regenerate
All (Gerar Tudo Novamente).
- 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";
- 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