Я пытаюсь использовать com.google.inject.Injector
класс в AADL
, который является языком, специфичным для предметной области, созданным с использованием EMF и XText
.когда я вызываю функцию Aadl2StandaloneSetup.doSetup()
, которая обеспечивает Initialisation
поддержку для запуска Xtext
языков без реестра расширений равноденствия, я получаю ошибку java.lang.ClassNotFoundException: org.osate.xtext.aadl2.Activator
, которую enter code here
org.osate.xtext.aadl2_1.0.0.qualifier не может найти.как это можно исправить.
Код Aadl2StandaloneSetup.doSetup()
ниже:
public Injector createInjectorAndDoEMFRegistration() {
org.osate.xtext.aadl2.properties.PropertiesStandaloneSetup.doSetup();
Injector injector = createInjector();
register(injector);
return injector;
}
public Injector createInjector() {
return Guice.createInjector(new org.osate.xtext.aadl2.Aadl2RuntimeModule());
}
public void register(Injector injector) {
org.eclipse.xtext.resource.IResourceFactory resourceFactory = injector.getInstance(org.eclipse.xtext.resource.IResourceFactory.class);
org.eclipse.xtext.resource.IResourceServiceProvider serviceProvider = injector.getInstance(org.eclipse.xtext.resource.IResourceServiceProvider.class);
Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("aadl", resourceFactory);
org.eclipse.xtext.resource.IResourceServiceProvider.Registry.INSTANCE.getExtensionToFactoryMap().put("aadl", serviceProvider);
Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("aadl2", resourceFactory);
org.eclipse.xtext.resource.IResourceServiceProvider.Registry.INSTANCE.getExtensionToFactoryMap().put("aadl2", serviceProvider);
}