use of org.eclipse.xtext.maven.MavenStandaloneBuilderModule 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.maven.MavenStandaloneBuilderModule in project edelta by LorenzoBettini.
the class EdeltaMojo method internalExecute.
protected void internalExecute() throws MojoExecutionException {
var languages = new LanguageAccessFactory().createLanguageAccess(getLanguages(), this.getClass().getClassLoader());
var injector = Guice.createInjector(new MavenStandaloneBuilderModule());
var builder = injector.getInstance(StandaloneBuilder.class);
builder.setBaseDir(project.getBasedir().getAbsolutePath());
builder.setLanguages(languages);
builder.setEncoding(encoding);
builder.setClassPathEntries(getClasspathElements());
builder.setClassPathLookUpFilter(classPathLookupFilter);
builder.setSourceDirs(sourceRoots);
builder.setJavaSourceDirs(javaSourceRoots);
builder.setFailOnValidationError(failOnValidationError);
builder.setTempDir(createTempDir(tmpClassDirectory).getAbsolutePath());
builder.setDebugLog(getLog().isDebugEnabled());
configureCompiler(builder.getCompiler());
logState();
var errorDetected = !builder.launch();
if (errorDetected && Boolean.TRUE.equals(failOnValidationError)) {
throw new MojoExecutionException("Execution failed due to a severe validation error.");
}
}
Aggregations