Search in sources :

Example 6 with ISetup

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);
            }
        }
    }
}
Also used : MojoExecutionException(org.apache.maven.plugin.MojoExecutionException) MavenLog4JConfigurator(org.eclipse.xtext.maven.MavenLog4JConfigurator) ISetup(org.eclipse.xtext.ISetup) OutputConfigurationProvider(org.eclipse.xtext.generator.OutputConfigurationProvider) FileExtensionProvider(org.eclipse.xtext.resource.FileExtensionProvider) MavenStandaloneBuilderModule(org.eclipse.xtext.maven.MavenStandaloneBuilderModule) IOException(java.io.IOException) MojoExecutionException(org.apache.maven.plugin.MojoExecutionException) ITraceToBytecodeInstaller(org.eclipse.xtext.generator.trace.ITraceToBytecodeInstaller) TraceFileNameProvider(org.eclipse.xtext.generator.trace.TraceFileNameProvider) Language(org.eclipse.xtext.maven.Language) Injector(com.google.inject.Injector) OutputConfiguration(org.eclipse.xtext.generator.OutputConfiguration)

Example 7 with ISetup

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;
}
Also used : Injector(com.google.inject.Injector) ISetup(org.eclipse.xtext.ISetup) ResourceServiceProviderRegistryImpl(org.eclipse.xtext.resource.impl.ResourceServiceProviderRegistryImpl)

Example 8 with ISetup

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());
}
Also used : DefaultLocationInFileProvider(org.eclipse.xtext.resource.DefaultLocationInFileProvider) DefaultEObjectLabelProvider(org.eclipse.xtext.ui.label.DefaultEObjectLabelProvider) Injector(com.google.inject.Injector) DefaultOutlineTreeProvider(org.eclipse.xtext.ui.editor.outline.impl.DefaultOutlineTreeProvider) ISetup(org.eclipse.xtext.ISetup)

Example 9 with ISetup

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);
}
Also used : Injector(com.google.inject.Injector) ISetup(org.eclipse.xtext.ISetup) Model(org.eclipse.xtext.ui.tests.editor.outline.outlineTest.Model)

Example 10 with ISetup

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());
}
Also used : ISetup(org.eclipse.xtext.ISetup)

Aggregations

ISetup (org.eclipse.xtext.ISetup)11 Injector (com.google.inject.Injector)8 FileExtensionProvider (org.eclipse.xtext.resource.FileExtensionProvider)2 Model (org.eclipse.xtext.ui.tests.editor.outline.outlineTest.Model)2 IOException (java.io.IOException)1 HashMap (java.util.HashMap)1 MojoExecutionException (org.apache.maven.plugin.MojoExecutionException)1 ImageDescriptor (org.eclipse.jface.resource.ImageDescriptor)1 OutputConfiguration (org.eclipse.xtext.generator.OutputConfiguration)1 OutputConfigurationProvider (org.eclipse.xtext.generator.OutputConfigurationProvider)1 ITraceToBytecodeInstaller (org.eclipse.xtext.generator.trace.ITraceToBytecodeInstaller)1 TraceFileNameProvider (org.eclipse.xtext.generator.trace.TraceFileNameProvider)1 Language (org.eclipse.xtext.maven.Language)1 MavenLog4JConfigurator (org.eclipse.xtext.maven.MavenLog4JConfigurator)1 MavenStandaloneBuilderModule (org.eclipse.xtext.maven.MavenStandaloneBuilderModule)1 DefaultLocationInFileProvider (org.eclipse.xtext.resource.DefaultLocationInFileProvider)1 IResourceServiceProvider (org.eclipse.xtext.resource.IResourceServiceProvider)1 ResourceServiceProviderRegistryImpl (org.eclipse.xtext.resource.impl.ResourceServiceProviderRegistryImpl)1 DefaultOutlineTreeProvider (org.eclipse.xtext.ui.editor.outline.impl.DefaultOutlineTreeProvider)1 EObjectNode (org.eclipse.xtext.ui.editor.outline.impl.EObjectNode)1