нарушение ограничений загрузчика при запуске сравнения EMF (и соответствующих инструментов для сравнения моделей).

#java #eclipse #model-comparison #emf-compare #mde

Вопрос:

Я хотел бы получить некоторое представление о паре тем :«Сравнение ЭДС» и «сравнение модели с моделью» в целом.

Я пытаюсь добиться сравнение между двумя данные моделей, которые отличаются друг от друга (я) во-первых, это выходной модели, которая является результатом трансформации, которую я запускаю на экземпляр ввода мета-модель, (II) второй экземпляр (рассчитанным на выход мета-модель), который я создал, чтобы представлять, что правильный ожидаемый результат форма должна быть после преобразования (а.к.с моделью Oracle).

Я попытался использовать «Сравнение EMF» для сравнения нескольких различных моделей вывода (которые я получил после выполнения преобразования на нескольких разных моделях ввода) и «правильной» модели oracle с целью проверки моего предлагаемого преобразования.

Однако всякий раз, когда я пытаюсь запустить «сравнить с -> друг с другом», я получаю следующее сообщение об ошибке и безрезультатно :

 An internal error occurred during: "Computing Model Differences".
loader constraint violation: loader org.eclipse.osgi.internal.loader.EquinoxClassLoader @477ad3b6 wants to load interface com.google.common.collect.Multimap. A different interface with the same name was previously loaded by org.eclipse.osgi.internal.loader.EquinoxClassLoader @3a161902. (com.google.common.collect.Multimap is in unnamed module of loader org.eclipse.osgi.internal.loader.EquinoxClassLoader @3a161902, parent loader 'platform')
 

Я попытался удалить /.метаданные/.плагины/org.eclipse.e4.workbench/workbench.xmi и перезапустить свое рабочее пространство. Однако проблема сохранялась.

И я также убедился, что нет конфликтующих версий Гуавы (на самом деле у меня не было установленной гуавы, поэтому я попытался установить ее, что не устранило проблему), и я также попытался установить плагин Orbit, как мне было рекомендовано, и это также не помогло, потому что остается та же ошибка. Мои вопросы таковы:

(i)Основываясь на моем описании, соответствует ли использование сравнения ЭДС моим требованиям? как объяснялось выше, мне нужно сравнить каждую выходную модель с одной и той же моделью oracle и получить оценку или что-то в этом роде, чтобы решить, дало ли преобразование правильный результат или нет. (ii) Если да, то в чем причина этой проблемы и как я могу ее устранить? (iii) если нет, то какой подходящий инструмент или плагин использовать для достижения того, что мне нужно?

Дополнительный вопрос, который может немного выходить за рамки вопроса: (iv) Я видел работы, которые сравнивают выходные модели с оракулом и классифицируют эти результаты в гиперпространстве и гиперлиниях (ложноположительные, ложноотрицательные и т. Д.), После этого они вычисляют точность и отзывают свои подходы. В конечном счете, основываясь на этом, они оценят правильность предложенной ими трансформации. Однако я не смог найти надлежащей документации о том, как добиться этого самостоятельно (в форме академического эксперимента). Может ли кто-нибудь предоставить мне инструкции или документацию о том, как провести правильное сравнение и оценить правильность моей трансформации?

Заранее спасибо. С уважением.

Комментарии:

1. Это своего рода конфликт в зависимостях подключаемых модулей и путях к классам, приводящий к попытке загрузить интерфейс из двух разных мест.

2. @greg-449 спасибо за ваш ответ, любые предложения о том, как я могу обнаружить конфликтующие зависимости? как я уже упоминал в своей теме, мне было рекомендовано, чтобы версии гуавы противоречили друг другу, однако я не уверен, что смогу это подтвердить?