Auto-hosting dei progetti binari

L'auto-hosting semplice si presta a molte situazioni autonome ed è particolarmente adatto allo sviluppo rispetto a prodotti di grandi dimensioni come destinazione. Tuttavia, esistono alcuni scenari in cui è necessaria una soluzione più avanzata:

  1. Dal momento che i plug-in esterni non si trovano nello spazio di lavoro, essi non fanno parte dell'ambito della ricerca. Tuttavia, varie ricerche (dei riferimenti a interfacce e classi, di implementazioni, ecc) restituiscono un numero di risultati inferiore a quello previsto. Solo le librerie esterne che fanno parte del percorso classi dei plug-in dello spazio di lavoro sono visibili ai plug-in.

  2. Nel secondo scenario l'esecuzione di ricerche nel codice di origine dei plug-in esterno è possibile solo per i plug-in richiesti dai plug-in dello spazio di lavoro. Gli altri plug-in non sono visibili.

  3. Il percorso classi non è stabile. Se si lavora su un certo numero di plug-in interdipendenti nello spazio di lavoro, il PDE esprimerà tali dipendenze come riferimenti al progetto. In contrasto, le dipendenze su plug-in esterni verranno espresse utilizzando la variabile ECLIPSE_HOME e JAR esterni. Se questi progetti vengono condivisi utilizzando il repository, gli altri sviluppatori saranno costretti a replicare il complemento anche se non hanno bisogno di tutti i plug-in presenti nello spazio di lavoro.

L'ovvia conclusione è che se tutti i plug-in si trovassero nello spazio di lavoro, tutti questi inconvenienti verrebbero risolti. La ricerca funzionerebbe nel modo previsto, il codice di origine sarebbe visibile a tutte le classi e il percorso classi sarebbe uniforme, vale a dire conterrebbe solo i riferimenti al progetto. Tuttavia, l'aggiunta obbligatoria dell'intero prodotto da un repository condiviso nel modulo di origine determina un download e una compilazione eccessivamente lenti. Per questo motivo viene introdotto il concetto di progetti binari.

I progetti binari sono regolari progetti di plug-in che contengono codice di origine. Di conseguenza, vengono ignorati durante la compilazione e vengono utilizzati per risolvere gli inconvenienti appena descritti. I plug-in esterni vengono inseriti nello spazio di lavoro utilizzando la procedura guidata per l'importazione del PDE.

Prima di importare progetti binari, è importante configurare il PDE per l'auto-hosting binario. Dal momento che non verranno utilizzati plug-in esterni per risolvere i riferimenti, è necessario disattivarli in Preferenze. Dopodiché, viene richiamata la procedura guidata per l'importazione utilizzando File->Importa...->Plug-in e frammenti esterni

Procedura guidata Importa plug-in esterni - prima pagina

La maggior parte delle volte, vengono accettati i valori predefiniti presenti nella prima pagina. Per impostazione predefinita, si importano i plug-in esterni del workbench di run-time di destinazione in base alle impostazioni definite in Preferenze. La prima pagina della procedura guidata per l'importazione consente di modificare la posizione del workbench di run-time fornendo un collegamento alla pagina Sviluppo plug-in->Piattaforma di destinazione attraverso il pulsante Modifica....

L'importazione di progetti binari può determinare un aumento delle dimensioni dello spazio di lavoro e l'operazione di importazione in sé può richiedere parecchio tempo a seconda del numero e del contenuto dei plug-in importati.  Per risolvere questi problemi, il PDE ha introdotto il concetto di importazione con collegamento.  Se si deseleziona la casella di controllo che consente di copiare il contenuto del plug-in nel percorso dello spazio di lavoro, il PDE non importerà il contenuto del plug-in selezionato nello spazio di lavoro.  Verranno invece creati dei progetti per questi plug-in nello spazio di lavoro e verrà creata una risorsa collegata per ogni file da importare.   Le risorse collegate puntano ai file effettivi nell'installazione e verranno visualizzate nello spazio di lavoro come se venissero importate esplicitamente.   Sarà possibile eseguire ricerche al loro interno, ma non sarà possibile modificarle, in quanto la modifica di questi file comporterebbe la modifica dei file originali.   L'eliminazione di un progetto binario naturalmente causerebbe l'eliminazione di tutti i file collegati in esso contenuti.

 

Per collegare automaticamente il codice di origine a un file JAR e l'opzione di estrazione degli archivi di origine, è necessario che il PDE cerchi il file zip contenente l'origine.   Il PDE presenta due requisiti per questa attività:

1. Il file zip deve avere un nome appropriato.   Se il nome della libreria è xyz.jar, il file zip contenente l'origine per quella libreria deve presentare il nome xyzsrc.jar.

2. Il file zip deve essere insieme al file JAR o in uno dei percorsi del codice di origine dichiarato. In Eclipse, il codice di origine viene compresso in plug-in separati e i percorsi del codice di origine sono dichiarati utilizzando il punto di estensione 'org.eclipse.pde.core.source'.  Il PDE esamina automaticamente tutte le estensioni presenti nella piattaforma di destinazione, calcola tutti i percorsi del codice di origine riscontrati in quella piattaforma e li aggiunge alla pagina delle preferenze Sviluppo preferenze->Percorsi codice di origine.

Se si importa da un percorso diverso dalla piattaforma di destinazione come viene specificato nella pagina Sviluppo plug-in->Piattaforma di destinazione e il codice di origine viene compresso utilizzando i punti di estensione 'org.eclipse.pde.core.source', assicurarsi di aggiungere tali percorsi manualmente alla pagina Sviluppo plug-in->Percorsi codice di origine, in modo che il PDE possa trovare l'origine correttamente.

I percorsi di libreria talvolta contengono variabili, ad esempio $ws$.  Il PDE sostituisce i valori impostati nella pagina Sviluppo plug-in->Ambiente di destinazione per sostituire le variabili.   Se questi valori sono incompatibili con la piattaforma da cui si esegue l'importazione, la prima pagina della procedura guidata per l'importazione fornisce un collegamento a quella pagina delle preferenze attraverso il pulsante Modifica... che consente di modificare i valori su quella pagina.

Quando si preme Avanti, la procedura guidata calcola tutti i candidati all'importazione e li rende disponibili in un elenco di caselle di controllo. L'insieme effettivo di plug-in selezionata dipende dalla modalità di auto-hosting selezionata.

Procedura guidata Imposta plug-in esterni - seconda pagina

Se si lavora su plug-in che non sono già presenti nella piattaforma di destinazione, sarà possibile selezionare tutte le scelte (Seleziona tutto). Se alcuni dei plug-in nell'elenco si trovano già nello spazio di lavoro nel modulo di origine, è possibile scegliere Progetti esistenti, quindi Inverti selezione. Attraverso questa operazione verranno selezionati tutti i plug-in che non sono già nello spazio di lavoro.

Quando si preme Fine, i plug-in selezionati verranno importati nello spazio di lavoro. Il PDE ne imposterà anche il percorso classi e assocerà gli archivi di origine alle librerie in modo che sia possibile esaminarli o sottoporli a debug.

Quando nello spazio di lavoro è presente un gran numero di progetti binari, è difficile separarli dai progetti di origine. Il PDE fornisce due metodi ulteriori per la gestione di questo problema. Uno è rappresentato dal decoratore di etichette che aggiunge un'icona 'binaria' sovrapposta alla normale icona del progetto per indicare chiaramente il progetto binario. È possibile attivarlo in Preferenze all'interno di >Decorazioni etichette'. Inoltre, il PDE fornisce un filtro del progetto binario alla vista Java Explorer. Se utilizzato, tale filtro nasconde i progetti binari e rende visibili solo quelli su cui si sta lavorando.

Progetti binari con sovrapposizione di icona in Esplora pacchetti

 

 
Copyright IBM Corporation e altri 2000, 2003.