use of org.eclipse.xtext.ISetup in project xtext-maven by eclipse.
the class AbstractInstallDebugInfoMojo method execute.
@Override
public void execute() throws MojoExecutionException {
synchronized (lock) {
new MavenLog4JConfigurator().configureLog4j(getLog());
Injector injector = Guice.createInjector(new MavenStandaloneBuilderModule());
injector.injectMembers(this);
for (Language language : getLanguages()) {
Set<OutputConfiguration> outputConfigurations = language.getOutputConfigurations();
if (outputConfigurations == null) {
getLog().warn("No output configurations available for language " + language.getSetup() + ", assuming default layout and using SMAP trace.");
outputConfigurations = new OutputConfigurationProvider().getOutputConfigurations();
}
try {
Class<?> setup = getClass().getClassLoader().loadClass(language.getSetup());
ISetup languageSetup = (ISetup) setup.getDeclaredConstructor().newInstance();
Injector languageInjector = languageSetup.createInjectorAndDoEMFRegistration();
FileExtensionProvider fileExtensionProvider = languageInjector.getInstance(FileExtensionProvider.class);
TraceFileNameProvider traceFileNameProvider = languageInjector.getInstance(TraceFileNameProvider.class);
for (OutputConfiguration config : outputConfigurations) {
ITraceToBytecodeInstaller traceInstaller = getTraceInstaller(config);
List<Trace> traces = createTraceInformation(getOutputDirectories(config), traceFileNameProvider);
installTraces(fileExtensionProvider.getFileExtensions(), traceInstaller, traces, traceFileNameProvider);
}
} catch (Exception e) {
throw new MojoExecutionException("Failed to install traces for " + language.getSetup(), e);
}
}
}
}
use of org.eclipse.xtext.ISetup in project xtext-core by eclipse.
the class ResourceServiceProviderServiceLoader method loadRegistry.
private Registry loadRegistry() {
ResourceServiceProviderRegistryImpl registry = new ResourceServiceProviderRegistryImpl();
for (ISetup cp : setupLoader) {
Injector injector = cp.createInjectorAndDoEMFRegistration();
IResourceServiceProvider resourceServiceProvider = injector.getInstance(IResourceServiceProvider.class);
FileExtensionProvider extensionProvider = injector.getInstance(FileExtensionProvider.class);
String primaryFileExtension = extensionProvider.getPrimaryFileExtension();
for (String ext : extensionProvider.getFileExtensions()) {
if (registry.getExtensionToFactoryMap().containsKey(ext)) {
if (primaryFileExtension.equals(ext))
registry.getExtensionToFactoryMap().put(ext, resourceServiceProvider);
} else {
registry.getExtensionToFactoryMap().put(ext, resourceServiceProvider);
}
}
}
return registry;
}
use of org.eclipse.xtext.ISetup in project xtext-eclipse by eclipse.
the class OutlineTreeProviderTest method setUp.
@Override
public void setUp() throws Exception {
super.setUp();
final Injector injector = TestsActivator.getInstance().getInjector("org.eclipse.xtext.ui.tests.editor.outline.OutlineTestLanguage");
with(new ISetup() {
@Override
public Injector createInjectorAndDoEMFRegistration() {
return injector;
}
});
treeProvider = new DefaultOutlineTreeProvider(new DefaultEObjectLabelProvider(), new DefaultLocationInFileProvider());
}
use of org.eclipse.xtext.ISetup in project xtext-eclipse by eclipse.
the class OutlineNodeTest method setUp.
@Override
public void setUp() throws Exception {
super.setUp();
final Injector injector = TestsActivator.getInstance().getInjector("org.eclipse.xtext.ui.tests.editor.outline.OutlineTestLanguage");
with(new ISetup() {
@Override
public Injector createInjectorAndDoEMFRegistration() {
return injector;
}
});
resource = getResource("parent { child0 {} }", "test.outlinetestlanguage");
parentElement = ((Model) resource.getContents().get(0)).getElements().get(0);
child0Element = parentElement.getChildren().get(0);
}
use of org.eclipse.xtext.ISetup in project xtext-extras by eclipse.
the class AbstractXtextTests method with.
protected void with(Class<? extends ISetup> setupClazz) throws Exception {
assertTrue("super.setUp() has to be called before any injector is instantiated", canCreateInjector);
ISetup instance = setupClazz.getDeclaredConstructor().newInstance();
setInjector(instance.createInjectorAndDoEMFRegistration());
}
Aggregations