2012-02-21 5 views
0

특정 .xmi를로드하는 EMF 플러그인의 두 가지 버전이 있습니다. 후자의 버전이 변경되어 이전 버전의 xmi가 호환되지 않습니다. 내가 원하는 것은 xmi를 첫 번째 플러그인으로로드 한 다음 더 새로운 플러그인을 사용하여 프로그래밍 방식으로 모델을 빌드하여 이전 모델을 마이그레이션하는 것입니다. EMF 모델의 일부 변경 사항을 제외하고는 동일합니다.Eclipse에서 다른 버전의 플러그인을 두 번로드하는 중

어떻게 이러한 플러그인을로드합니까? 가능한가? 더 나은 전략이 있습니까?

답변

1

이전 버전 (및 EMF 패키지 URI)의 ID를 변경하는 것이 좋습니다. 두 코드와 모델을 동시에 사용할 수 있습니다.

동일한 플러그인 (마이그레이션 프로그램)에서 이전 클래스와 새 클래스를 모두 처리해야하므로 두 방법을 모두 사용할 수있는 방법이 없습니다.

그러나 생성 된 패키지없이 이전 모델을 열 수있는 dynamic EMF technology을보아야합니다. 반대로 반향 API를 사용해야합니다. 이 방법을 사용하면 EMF 반사 형 API를 사용하여 이전 모델을 열고 변환기를 작성하여 수동으로 새 모델 버전으로 변환 할 수 있습니다.

1

죄송 합니다만 이러한 플러그인은 싱글 톤이므로 불가능합니다. 또한 Java 기본 클래스가 생겨나면서 마이그레이션 중에 플러그인을 전환 할 수 없습니다.

하나의 가능한 솔루션은 EDapt 기술을 사용하는 것입니다. 이 기술을 사용하면로드 할 때 자동으로 모델을 마이그레이션 할 수 있습니다. 저는 큰 성공을 거둔 두 가지 프로젝트에서 EDPE의 전신 인 COPE를 사용했습니다.