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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top