Pergunta

Eu tenho duas versões diferentes de um plugin EMF que carrega um certo .xmi.A última versão foi alterada para que o xmi da versão anterior seja incompatível.O que eu quero fazer é carregar o xmi com o primeiro plug-in e, em seguida, construir programaticamente um modelo usando o plug-in mais recente, migrando os modelos mais antigos.Eles são idênticos, exceto por algumas mudanças dentro de um modelo EMF.

Como carrego esses plug-ins?É possível?Existem estratégias melhores?

Foi útil?

Solução

Eu sugiro alterar o id da versão antiga (e possivelmente o URI do pacote EMF), para que você possa ter os dois códigos e modelos simultaneamente.

Como você precisa lidar com as classes antigas e novas no mesmo plug-in (o migrador), não há como as duas funcionarem.

No entanto, você deve olhar para a tecnologia EMF dinâmica ondevocê poderia abrir o modelo antigo sem seus pacotes gerados (por outro lado, você tem que usar a API reflexiva).Usando este método, você pode escrever um conversor, que abre o modelo antigo usando a API reflexiva EMF e traduzi-lo manualmente em sua nova versão do modelo.

Outras dicas

Desculpe, mas isso não é possível porque esses plug-ins são singletons.E você não pode trocar os plug-ins durante as migrações, pois as classes de base Java ficam no seu caminho.

Uma solução possível é usar a tecnologia EDapt .Esta tecnologia permite que você migre automaticamente seu modelo conforme você o carrega.Usei o COPE - o antecessor do EDapt - em dois projetos diferentes com grande sucesso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top