Caricamento dello stesso plugin due volte con una versione diversa in Eclipse
-
28-10-2019 - |
Domanda
Ho due versioni differenti di un plugin EMF che carica un certo .xmi.L'ultima versione è stata modificata in modo che xmi dalla versione precedente sia incompatibile.Quello che voglio fare è caricare gli xmi con il primo plug-in e quindi creare in modo programmatico un modello utilizzando il plug-in più recente, migrando così i modelli precedenti.Sono identici a parte alcune modifiche all'interno di un modello EMF.
Come faccio a caricare questi plugin?È possibile?Esistono strategie migliori?
Soluzione
Suggerisco di cambiare l'id della vecchia versione (e possibilmente l'URI del pacchetto EMF), in modo da poter avere il codice e i due modelli contemporaneamente.
Poiché è necessario gestire sia la vecchia che la nuova classe nello stesso plug-in (il migratore), non è possibile che funzionino entrambe.
Tuttavia, dovrai esaminare la tecnologia EMF dinamica dovepotresti aprire il vecchio modello senza i suoi pacchetti generati (d'altra parte, devi usare l'API riflessiva).Utilizzando questo metodo puoi scrivere un convertitore, che apre il vecchio modello utilizzando l'API riflettente EMF e tradurlo manualmente nella nuova versione del modello.
Altri suggerimenti
Spiacenti, ma non è possibile poiché questi plug-in sono singoli.E non puoi cambiare i plug-in durante le migrazioni poiché le classi di base Java ti ostacolano.
Una possibile soluzione è utilizzare la tecnologia EDapt .Questa tecnologia ti consente di migrare automaticamente il tuo modello mentre lo carichi.Ho utilizzato COPE - il predecessore di EDapt - in due diversi progetti con grande successo.