Aggiornamento delle risorse di runtime Faces Client in un progetto Web

Le risorse di runtime di JavaServer Faces Client che originariamente venivano fornite con WebSphere Studio Application Developer V5.1.x sono state aggiornate per Rational Application Developer V6.0.1. Se si desidera continuare lo sviluppo in progetti Web creati con la versione precedente del prodotto, si consiglia di aggiornare le risorse di runtime Faces Client all'ultimo livello.

In Rational Application Developer V6.0.1, gli aggiornamenti alle risorse di runtime del client Faces vengono effettuati automaticamente quando viene importato un progetto o quando viene aperto uno spazio di lavoro che contiene risorse obsolete. Dopo aver importato un progetto Web o aver aperto uno spazio di lavoro da WebSphere Studio Application Developer V5.1.x in Rational Application Developer V6.0.1, verrà richiesto di aggiornare le risorse di runtime del client Faces all'ultimo livello.

Aggiornamento automatico delle risorse di runtime

Per aggiornare le risorse di runtime del client Faces automaticamente per i progetti Web, procedere come segue:
  1. Importare un progetto Web (o uno spazio di lavoro) contenente dati Faces Client da WebSphere Studio Application Developer V5.1.x. Viene aperta la finestra Migrazione progetto.
    Nota: Se la finestra Migrazione progetto non viene visualizzata, probabilmente l'impostazione di generazione automatica è disabilitata. In Esplora progetti, selezionare il progetto Web con il tasto destro del mouse e scegliere Genera > Progetto; il processo di rigenerazione di un progetto apre la finestra Migrazione progetto.
  2. Se si dispone di altri progetti Web con contenuto Faces Client nello spazio di lavoro, selezionare l'opzione Applica questa scelta a tutti i progetti che devono essere aggiornati in modo che vengano aggiornati tutti i progetti Web.
  3. Selezionare una delle seguenti opzioni:
    • per completare automaticamente l'aggiornamento.
    • Dopo per aggiornare in un secondo momento. Se si seleziona Dopo, per aggiornare le risorse di runtime automaticamente sarà necessario chiudere e riaprire il progetto Web o riavviare il workbench prima di rigenerare il progetto Web. Se l'operazione di generazione automatica è deselezionata, selezionare il progetto Web con il tasto destro del mouse e selezionare Genera progetto.
    • Mai per lasciare le risorse di runtime al livello inferiore. Se si seleziona Mai per non aggiornare intenzionalmente le risorse di runtime, non verrà richiesto ancora di aggiornarle. In seguito, qualora fosse necessario, le risorse di runtime dovranno essere aggiornate manualmente.
  4. Dalla cartella Risorse Java > JavaSource nel progetto Web, eliminare tutti i pacchetti di classi di mediazione con nome com.ibm.dynwdo4jsmediators.<client-data-name>. Non eliminare il pacchetto com.ibm.dynwdo4jsmediators. Questo pacchetto contiene metadati (file ecore ed emap) per i dati client nel progetto che verranno utilizzati per rigenerare i mediatori.
  5. Dalla cartella Risorse Java > JavaSource nel progetto Web, aprire il file OdysseyBrowserFramework.properties ed eliminare le voci per EMAP_FILES e ECORE_FILES.
  6. Per ciascun oggetto dati nella vista Dati client:
    1. Fare clic con il tasto destro del mouse e selezionare Configura.
    2. Nella scheda Avanzate, scegliere Rigenera dai dati del server per rigenerare tutti i mediatori per l'oggetto dati.

Aggiornamento manuale delle risorse di runtime

Per aggiornare le risorse di runtime del client Faces manualmente per i progetti Web, procedere come segue:
  1. Completare le istruzioni riportate nella sezione Aggiornamento manuale delle risorse di runtime in Aggiornamento delle risorse di runtime Faces in un progetto Web.
  2. Completare i punti 4-6 della sezione Aggiornamento automatico delle risorse di runtime precedente.

È possibile che possano verificarsi dei problemi durante la modifica del server di destinazione di un progetto contenente componenti del client Faces da WebSphere Application Server V5.1 a V6.0.

Inoltre, possono verificarsi due problemi durante la modifica del server di destinazione di un progetto contenente componenti del client Faces da WebSphere Application Server V5.1 a V6.0:
  • Le classi del mediatore dati client già generate non verranno più compilate. Dovranno essere rigenerate con una JSP alla volta:
    1. Aprire il file OdysseyBrowserFramework.properties trovato nella cartella principale dell'origine Java. Salvare il contenuto affinché possa essere utilizzato in seguito.
    2. Nel file OdysseyBrowserFramework.properties, per ciascuna JSP Faces nel nuovo progetto Web contenente dati client, trovare le voci <client-data-name>.ecore e <client-data-name>.emap per le proprietà EMAP_FILES e ECORE_FILES.
    3. Mantenere solo le voci corrispondenti per i dati client nel JSP ed eliminare tutte le altre voci.
      Ad esempio, se la pagina corrente contiene i dati client ACCOUNT e il file delle proprietà ha una voce simile a:
      EMAP_FILES=com\\ibm\\dynwdo4jsmediators/account.emap com\\ibm\\dynwdo4jsmediators/orders.emap
      eliminare com\\ibm\\dynwdo4jsmediators/orders.emap da questa voce. La voce verrà visualizzata come:
      EMAP_FILES=com\\ibm\\dynwdo4jsmediators/account.emap
    4. Salvare il file delle proprietà.
    5. Selezionare un oggetto dati client in una JSP con il tasto destro del mouse e scegliere Configura.
    6. Nella scheda Avanzate, scegliere Rigenera tutto. In tal modo tutte le risorse necessarie per tutti i dati client nella JSP corrente verranno rigenerati.
    7. Ripetere i punti 2-6 per ciascuna JSP contenente i dati client nel progetto Web.
    8. Dopo aver rigenerato le classi del mediatore dati client, saranno presenti ancora alcune classi di mediatore non compilate. Queste rappresentano i mediatori per gli elementi di schema non più utilizzate negli SDO (Service Data Objects) in V6.x ed utilizzano la convenzione di denominazione *_DataGraphSchema_wdo4js_*.java and *_RootDataObject_wdo4js_*.java. Eliminare queste classi di mediazione dal progetto Web per prevenire tali errori di compilazione.
    9. Una volta che l'aggiornamento viene completato correttamente la migrazione, ripristinare il contenuto originale del file OdysseyBrowserFramework.properties.
  • I componenti client Faces della vista ad albero associati a WDO non possono essere eseguiti sul server dopo aver modificato il server di destinazione del progetto in WebSphere Application Server V6.0. La soluzione consiste nel modificare la vista Origine della JSP in modo da cambiare tutti i tag className affinché utilizzino una classe SDO DataObject invece della classe WDO DataObject. Ad esempio, per un WDO chiamato account:
    1. Per l'oggetto principale, modificare il nome del tag className da className="com.ibm.etools.wdo.DataObject(DynWDO`account`RootDataObject)" in className="commonj.sdo.DataObject(DynWDO`account`DataGraphRoot)".
    2. Per tutti i nodi secondari, modificare il tag className da className="com.ibm.etools.wdo.DataObject(DynWDO`account`ACCOUNT)" a className="commonj.sdo.DataObject(DynWDO`account`ACCOUNT)", dove ACCOUNT è il nome del nodo di dati.

Aggiornamento ai processori e gestori Diff automatici

I processori e i gestori Diff vengono generati automaticamente. Se i processori e i gestori Diff per i componenti del client Faces sono stati scritti in WebSphere Studio V5.1.x, si consiglia di eliminare il codice e di utilizzare i gestori e i processori generati automaticamente:
  1. Generare i nuovi gestori e processori Diff in ciascun oggetto dati client nel progetto Web.
    1. Selezionare l'oggetto dati client con il tasto destro del mouse e scegliere Configura.
    2. Nella scheda Avanzate, scegliere Rigenera tutto.
  2. Rimuovere il codice scritto per richiamare i processori e i gestori Diff, in quanto adesso verranno richiamati automaticamente. Un tipico esempio dell'uso di questo codice, è l'evento Comando per il componente Pulsante di comando,ad esempio:
    String Diff = getClientData1().getDiffStr();
    if (DiffProcessor.Synch(getRoot(), Diff) == true)
     return "";
    return "failure";
  3. Rimuovere i file corrispondenti ai vecchi gestori personalizzati e processi creati dal progetto Web.

Conservazione dei gestori e processori Diff personalizzati scritti per V5.1.x

Anche se non consigliato, se si decide di conservare i gestori e i processori diff personalizzati della versione 5.1.x, sarà necessario modificarli affinché possano funzionare nella versione 6.0, in quanto l'interfaccia DiffHandler e la classe DiffInfo sono state modificate.
  • L'interfaccia DiffHandler è stata modificata come segue:
    • Il metodo handle adesso attiva una Exception oltre a una DiffException.
    • Il nuovo metodo find viene utilizzato dal framework per trovare oggetti.
    • Il nuovo metodo getId viene utilizzato per il debug e consente al framework di stampare il valore dell'oggetto.

    I metodi find e getId vengono utilizzati internamente dai DiffHandlers generati. Per i DiffHandler personalizzati, è possibile implementare metodi vuoti solo per compatibilità con l'interfaccia. Questi metodi non verranno richiamati dal framework.

    Adesso l'interfaccia DiffHandler è:
    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 classe DiffInfo è stata modificata come segue:
    • Il metodo ArrayList getAncestors() è stato sostituito dal metodo DiffInfo getParent(), che fornisce un modo più semplice di accedere alle informazioni per ciascun oggetto nella struttura di elementi precedenti in modo ricorsivo.
    • I metodi getCurrent() e getOriginal() adesso restituiscono un oggetto DataObject invece di un oggetto EObject. Non è obbligatorio modificare il codice per utilizzare l'oggetto DataObject. Tuttavia, l'interfaccia DataObject è molto più semplice e più intuitiva da utilizzare rispetto a EObject. È possibile unire facilmente un oggetto DataObject in un oggetto EObject per il codice esistente.
    • È stata aggiunta una nuova stringa di metodo getPropertyName() per identificare il nome della proprietà alla quale viene applicato questo oggetto È importante se, ad esempio, una classe data contiene due proprietà dello stesso tipo. Precedentemente, nella classe DiffInfo, il codice non sarebbe stato in grado di differenziare due proprietà.
    La classe DiffInfo è stata modificata come segue:
    public class DiffInfo
     {
       public char       getCrud()
       public DataObject getCurrent()
       public String     getEClassName()
       public DataObject getOriginal()
       public String     getPropertyName()
       public DiffInfo   getParent()
     }
    Nota: La classe DiffInfo non è più supportata per uso pubblico, in quanto i processori e i gestori Diff non vengono più generati automaticamente. Conservare i vecchi gestori solo come soluzione temporanea e utilizzare i gestori automatici.
Modifiche ai componenti client Faces nella V6.0:
  • Supporto per WebSphere Application Server V6.0.
  • Supporto per SDO (Service Data Objects) su WebSphere Application Server V6.0.
  • Dati EGL supportati come dati client.
  • Gestori e processori Diff generati automaticamente.
  • Nuovi eventi per i seguenti componenti:
    • TabbedPanel: onInitialPageShow
    • Tree: onNodeExpand, onNodeCollapse, onExpand, onCollapse
    • DataGrid: onPage, onSort, onFilter
Attività correlate
Aggiornamento delle risorse di runtime Faces per i progetti Web da Rational Application Developer V6.0
Aggiornamento delle risorse di runtime Faces in un progetto Web
Aggiornamento delle risorse di runtime Faces in un progetto portlet
Feedback
(C) Copyright IBM Corporation 2000, 2005. Tutti i diritti riservati.