Pregunta

Tengo dos versiones diferentes de un complemento EMF que carga un determinado .xmi.La última versión se ha modificado para que el xmi de la versión anterior sea incompatible.Lo que quiero hacer es cargar los xmi con el primer complemento y luego construir programáticamente un modelo usando el complemento más nuevo, migrando así los modelos más antiguos.Son idénticos salvo algunos cambios dentro de un modelo EMF.

¿Cómo cargo estos complementos?¿Es posible?¿Existen mejores estrategias?

¿Fue útil?

Solución

Sugiero cambiar la identificación de la versión anterior (y posiblemente el URI del paquete EMF), para que pueda tener los dos códigos y modelos simultáneamente.

Como necesita manejar tanto clases antiguas como nuevas en el mismo complemento (el migrador), no hay forma de que ambas funcionen.

Sin embargo, debe consultar la tecnología dinámica EMF dondepodría abrir el modelo antiguo sin sus paquetes generados (por otro lado, debe usar la API reflectante).Con este método, puede escribir un convertidor que abra el modelo antiguo utilizando la API reflectante EMF y traducirlo manualmente a la versión de su nuevo modelo.

Otros consejos

Lo sentimos, pero eso no es posible ya que estos complementos son singleton.Y no puede cambiar los complementos durante las migraciones ya que las clases base de Java se interponen en su camino.

Una posible solución es utilizar la tecnología EDapt .Esta tecnología le permite migrar automáticamente su modelo a medida que lo carga.He utilizado COPE, el predecesor de EDapt, en dos proyectos diferentes con gran éxito.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top