Les ressources d'exécution JavaServer Faces Client initialement disponibles dans
WebSphere Studio
Site Developer version 5.1.x ont été mises à jour pour Rational Web Developer version 6.0.1.
Si vous souhaitez continuer le développement dans des projets Web créés avec la version précédente du produit,
il est recommandé de mettre à niveau les ressources d'exécution Faces Client.
Dans Rational Web Developer version 6.0.1,
les mises à jour des ressources d'exécution Faces Client sont automatiquement appliquées lorsqu'un projet Web est importé ou qu'un espace de travail contenant des ressources antérieures est ouvert.
A l'issue de l'importation d'un projet Web ou de l'ouverture d'un espace de travail de WebSphere Studio
Site Developer version 5.1.x vers Rational Web Developer version 6.0.1,
le système vous invite à mettre à niveau les ressources d'exécution Faces Client.
Mise à jour automatique des ressources d'exécution
Pour mettre à jour
automatiquement les ressources d'exécution Faces Client d'un projet Web :
- Importez un projet Web (ou un espace de travail) stockant les données Faces Client de WebSphere Studio
Site Developer V5.1.x. La fenêtre Migration du projet
s'affiche.
Remarque : Si la fenêtre Migration du projet ne s'affiche pas, il est probable que les paramètres de préférences de génération automatique sont désactivés. Dans l'explorateur de projets,
cliquez à l'aide du bouton droit de la souris sur un projet Web et sélectionnez . Le processus de génération d'un projet entraîne l'affichage de la fenêtre Migration du projet.
- Si l'espace de travail comporte d'autres projets Web stockant des données Faces Client, cochez la case Appliquer cette option aux autres projets à mettre à jour pour mettre à jour tous les projets Web.
- Cliquez sur l'une des options suivantes :
- Oui pour exécuter la mise à jour automatiquement.
- Plus tard pour différer la mise à jour. Pour mettre automatiquement à jour les ressources d'exécution après avoir sélectionné Plus tard, vous devez fermer et rouvrir le projet Web et redémarrer le plan de travail avant de regénérer le projet Web. Si vous avez désactivé les générations automatiques, cliquez sur le projet Web à l'aide du bouton droit de la souris et sélectionnez Générer un projet.
- Jamais pour conserver les ressources d'exécution à un niveau antérieur.
Si vous sélectionnez Jamais et que vous conservez volontairement les ressources d'exécution à un niveau antérieur, le système ne vous invite plus à les mettre à jour.
Vous devrez migrer
manuellement les ressources de projet si vous en avez besoin ultérieurement.
- Dans le dossier du projet Web, supprimez tous les packages de classe des médiateurs de données client
en utilisant la convention de dénomination com.ibm.dynwdo4jsmediators.<nom_données_client>.
Ne supprimez PAS le package com.ibm.dynwdo4jsmediators. Ce package contient des
métadonnées (fichiers ecore et emap) pour les données client du projet qui seront utilisées
pour la regénération des médiateurs.
- Dans le dossier du projet Web, ouvrez le fichier OdysseyBrowserFramework.properties
et supprimez les entrées de EMAP_FILES et ECORE_FILES.
- Pour chaque objet de données dans la vue Client Data :
- A l'aide du bouton droit de la souris, cliquez sur Configure.
- Dans l'onglet Avancé, cliquez sur Actualiser à partir des données côté serveur pour actualiser tous les médiateurs des objets de données.
Mise à jour manuelle des ressources d'exécution
Pour mettre à jour
manuellement les ressources d'exécution Faces Client d'un projet Web :
- Effectuez les opérations de mise à jour manuelle des ressources d'exécution indiquées dans Mise à jour de ressources d'exécution Faces dans un projet Web.
- Effectuez les opérations 4-6 de la section Mise à jour automatique des ressources de mise à jour ci-dessus.
Des incidents peut se produire lors de la mise à jour du serveur cible d'un projet contenant des composants Faces Client de WebSphere Application Server 5.1
vers la version 6.0.
Deux incidents peuvent se produire lors de la modification
du serveur cible d'un projet contenant des composants Faces Client de WebSphere Application
Server version 5.1 en version 6.0 :
- Les classes du médiateur de données client déjà générées ne seront plus compilées. Chaque page
JSP doit être regénérée séparément.
- Ouvrez le fichier OdysseyBrowserFramework.properties disponible dans le dossier source Java. Sauvegardez le contenu pour une utilisation ultérieure.
- Dans le fichier OdysseyBrowserFramework.properties, pour chaque page JSP du projet Web contenant des données
Faces Client, recherchez les entrées <client-données-nom>.ecore et <client-données-nom>.emap
pour les propriétés EMAP_FILES et ECORE_FILES.
- Conservez uniquement les entrées correspondantes pour les données client de la page JSP et
supprimez toutes les autres entrées.
Par exemple, si des données client portent le nom
ACCOUNT dans la page en cours et que le fichier des propriétés dispose d'une entrée du type :
EMAP_FILES=com\\ibm\\dynwdo4jsmediators/account.emap com\\ibm\\dynwdo4jsmediators/orders.emap
Vous devez supprimer
com\\ibm\\dynwdo4jsmediators/orders.emap de l'entrée. L'entrée doit maintenant avoir l'aspect suivant :
EMAP_FILES=com\\ibm\\dynwdo4jsmediators/account.emap
- Sauvegardez le fichier properties.
- Cliquez sur un objet de données client dans une page JSP à l'aide du bouton droit de la souris et sélectionnez Configurer.
- Dans l'onglet Avancé, cliquez sur Régénérer tout. Cette action permet de regénérer tous
les artefacts nécessaires aux données client de la page JSP en cours.
- Répétez les étapes 2-6 pour chaque page JSP contenant des données client dans le projet Web.
- Après la regénération des classes de médiateur des données client, certaines classes du médiateur ne seront pas
compilées. Il s'agit des médiateurs des éléments de schéma qui ne sont plus utilisés dans les objets SDO
(Service Data Objects) de la version 6.x et qui appliquent la convention de dénomination
*_DataGraphSchema_wdo4js_*.java et *_RootDataObject_wdo4js_*.java.
Supprimez ces classes de médiateur du projet pour éviter ces erreurs de compilation.
- Après la fin de la mise à jour, restaurez le contenu
d'origine du fichier OdysseyBrowserFramework.properties.
- Les composants Faces Client de la vue Arborescence associés à WDO
ne parviennent pas à s'exécuter sur le serveur après le changement du serveur cible du projet en système WebSphere Application Server V6.0.
Pour éviter cette situation, il suffit de modifier
la vue source de la page JSP afin de modifier toutes les balises
className et d'utiliser la classe SDO DataObject à la place de la classe DataObject WDO. Par exemple, pour un objet WDO nommé account :
- Pour l'objet racine, modifiez la balise classNameclassName="com.ibm.etools.wdo.DataObject(DynWDO`account`RootDataObject)" en className="commonj.sdo.DataObject(DynWDO`account`DataGraphRoot)".
- Pour tous les noeuds enfant, modifiez la balise className className="com.ibm.etools.wdo.DataObject(DynWDO`account`ACCOUNT)" en className="commonj.sdo.DataObject(DynWDO`account`ACCOUNT)", où
ACCOUNT correspond au noeud de données.
Mise à niveau vers les processeurs et les gestionnaires Diff :
Les gestionnaires et processeurs Diff sont désormais automatiquement générés. Si vous
concevez des processeurs et des gestionnaires Diff pour les composants Faces Client dans WebSphere Studio version 5.1.x, il est recommandé d'ignorer ce code et d'utiliser les processeurs et les gestionnaires automatiquement
générés :
- Générez les nouveaux gestionnaires Diff et les processeurs sur chaque objet de données client dans votre projet Web.
- Cliquez à l'aide du bouton droit de la souris sur l'objet de données client et sélectionnez Configurer.
- Dans l'onglet Avancé, cliquez sur Régénérer tout.
- Supprimez le code que vous avez généré pour appeler les processeurs et les
gestionnaires Diff, les processeurs et les gestionnaires générés étant appelés automatiquement. Un exemple classique de l'emplacement d'utilisation de ce code concerne l'événement Commande du composant de bouton de commande :
String Diff = getClientData1().getDiffStr();
if (DiffProcessor.Synch(getRoot(), Diff) == true)
return "";
return "failure";
- Supprimez les fichiers correspondant aux anciens processeurs et
gestionnaires personnalisés que vous avez créés.
Conservation des processeurs et des gestionnaires Diff personnalisés conçus pour la version 5.1.x :
Cette action n'est pas recommandée mais si vous décidez de conserver les processeurs et les gestionnaires Diff
personnalisés de la version 5.1.x, il est nécessaire de les modifier afin qu'ils fonctionnent dans la version 6.0 étant
donné que l'interface DiffHandler et la classe DiffInfo ont été modifiées.
- Voici les modifications apportées à l'interface DiffHandler :
- La méthode du gestionnaire émet maintenant Exception outre DiffException.
- L'infrastructure utilise la nouvelle méthode de localisation pour trouver des objets.
- La nouvelle méthode getId permet le débogage et permet également à l'infrastructure
d'imprimer la valeur d'un objet.
Les méthodes getId et de localisation sont utilisées en interne par les éléments
DiffHandler générés.
Pour les éléments DiffHandler personnalisés, vous pouvez implémenter des méthodes
vides pour la compatibilité avec l'interface. Ces méthodes ne sont pas appelées par
l'infrastructure.
L'interface DiffHandler est maintenant la suivante :
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);
}
- Voici les modifications apportées à la classe DiffInfo :
- La méthode ArrayList getAncestors() a été remplacée par la méthode DiffInfo
getParent(), qui permet d'accéder plus facilement aux informations de chaque objet
de l'arborescence des ancêtres de manière récursive.
- Les méthodes getCurrent() et getOriginal() renvoient maintenant
un objet DataObject à la place d'un objet EObject. Il n'est pas obligatoire
de changer le code pour utiliser l'objet DataObject. Toutefois, l'utilisation
de l'interface DataObject est plus simple et plus intuitive que celle de l'objet
EObject. Vous pouvez facilement transtyper un objet DataObject en un objet EObject pour le code existant.
- Une nouvelle chaîne de méthodes getPropertyName() a été ajoutée pour l'identification
du nom de propriété auquel s'applique cet objet. Cet ajout est important si, par exemple, une
classe donnée a deux propriétés du même type. Précédemment, dans la classe DiffInfo, le
code n'aurait pas pu effectuer la différence entre les deux propriétés.
La classe DiffInfo est maintenant la suivante :
public class DiffInfo
{
public char getCrud()
public DataObject getCurrent()
public String getEClassName()
public DataObject getOriginal()
public String getPropertyName()
public DiffInfo getParent()
}
Remarque : La classe DiffInfo n'est plus prise en charge pour l'utilisation
publique et les gestionnaires et les processeurs Diff sont maintenant automatiquement
générés. La conservation des anciens gestionnaires n'est qu'une solution temporaire
et il est fortement recommandé d'utiliser des gestionnaires automatisés.
Modifications apportées aux composants Faces Client dans la version 6.0 :- Prise en charge de WebSphere Application Server version 6.0.
- Prise en charge des objets SDO (Service Data Objects) dans WebSphere Application Server version 6.0.
- Les données EGL sont maintenant prises en charge comme données client.
- Les gestionnaires et processeurs Diff sont automatiquement générés.
- Il existe de nouveaux événements pour les composants suivants :
- TabbedPanel : onInitialPageShow
- Tree : onNodeExpand, onNodeCollapse, onExpand, onCollapse
- DataGrid : onPage, onSort, onFilter