use of org.eclipse.xtext.generator.OutputConfigurationProvider in project xtext-eclipse by eclipse.
the class AbstractBuilderParticipantTest method withOutputConfiguration.
protected void withOutputConfiguration(final Procedures.Procedure1<OutputConfiguration> outputConfigurationInitializer, Procedures.Procedure0 test) {
OutputConfigurationProvider outputConfigurationProvider = new OutputConfigurationProvider() {
@Override
public Set<OutputConfiguration> getOutputConfigurations() {
final Set<OutputConfiguration> result = super.getOutputConfigurations();
outputConfigurationInitializer.apply(result.iterator().next());
return result;
}
};
try {
BuilderPreferenceAccess.Initializer initializer = new BuilderPreferenceAccess.Initializer();
initializer.setOutputConfigurationProvider(outputConfigurationProvider);
initializer.initialize(preferenceStoreAccess);
test.apply();
} finally {
BuilderPreferenceAccess.Initializer initializer = new BuilderPreferenceAccess.Initializer();
initializer.setOutputConfigurationProvider(new OutputConfigurationProvider());
initializer.initialize(preferenceStoreAccess);
}
}
use of org.eclipse.xtext.generator.OutputConfigurationProvider in project xtext-eclipse by eclipse.
the class BuilderParticipantTest method testNoOutputFolderCreation.
@Test
public void testNoOutputFolderCreation() throws Exception {
OutputConfigurationProvider outputConfigurationProvider = new OutputConfigurationProvider() {
@Override
public Set<OutputConfiguration> getOutputConfigurations() {
final Set<OutputConfiguration> result = super.getOutputConfigurations();
OutputConfiguration configuration = result.iterator().next();
configuration.setCreateOutputDirectory(false);
return result;
}
};
BuilderPreferenceAccess.Initializer initializer = new BuilderPreferenceAccess.Initializer();
initializer.setOutputConfigurationProvider(outputConfigurationProvider);
initializer.initialize(preferenceStoreAccess);
IJavaProject project = createJavaProject("foo");
addNature(project.getProject(), XtextProjectHelper.NATURE_ID);
IFolder folder = project.getProject().getFolder("src");
IFile file = folder.getFile("Foo" + F_EXT);
file.create(new StringInputStream("object Foo"), true, monitor());
build();
final IFile generatedFile = project.getProject().getFile("./src-gen/Foo.txt");
assertFalse(generatedFile.exists());
}
use of org.eclipse.xtext.generator.OutputConfigurationProvider 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.generator.OutputConfigurationProvider in project xtext-eclipse by eclipse.
the class BuilderParticipantTest method testNoCleanUpNoDerived.
@Test
public void testNoCleanUpNoDerived() throws Exception {
OutputConfigurationProvider outputConfigurationProvider = new OutputConfigurationProvider() {
@Override
public Set<OutputConfiguration> getOutputConfigurations() {
final Set<OutputConfiguration> result = super.getOutputConfigurations();
OutputConfiguration configuration = result.iterator().next();
configuration.setCanClearOutputDirectory(false);
configuration.setCleanUpDerivedResources(false);
configuration.setSetDerivedProperty(false);
return result;
}
};
BuilderPreferenceAccess.Initializer initializer = new BuilderPreferenceAccess.Initializer();
initializer.setOutputConfigurationProvider(outputConfigurationProvider);
initializer.initialize(preferenceStoreAccess);
IJavaProject project = createJavaProject("foo");
addNature(project.getProject(), XtextProjectHelper.NATURE_ID);
IFolder folder = project.getProject().getFolder("src");
IFile file = folder.getFile("Foo" + F_EXT);
file.create(new StringInputStream("object Foo"), true, monitor());
build();
IFile generatedFileFoo = project.getProject().getFile("./src-gen/Foo.txt");
assertTrue(generatedFileFoo.exists());
assertFalse(generatedFileFoo.isDerived());
assertTrue(generatedFileFoo.findMarkers(DerivedResourceMarkers.MARKER_ID, false, IResource.DEPTH_ZERO).length == 1);
assertEquals("object Foo", readFile(generatedFileFoo).trim());
file.setContents(new StringInputStream("object Bar"), true, true, monitor());
build();
assertTrue(generatedFileFoo.exists());
IFile generatedFileBar = project.getProject().getFile("./src-gen/Bar.txt");
assertTrue(generatedFileBar.exists());
assertFalse(generatedFileBar.isDerived());
assertTrue(generatedFileBar.findMarkers(DerivedResourceMarkers.MARKER_ID, false, IResource.DEPTH_ZERO).length == 1);
assertEquals("object Bar", readFile(generatedFileBar).trim());
file.delete(true, monitor());
build();
assertTrue(generatedFileBar.exists());
disableAutobuild(() -> {
cleanBuild();
assertTrue(generatedFileBar.exists());
});
}
use of org.eclipse.xtext.generator.OutputConfigurationProvider in project xtext-eclipse by eclipse.
the class BuilderParticipantTest method resetPrefs.
@After
public void resetPrefs() {
BuilderPreferenceAccess.Initializer initializer = new BuilderPreferenceAccess.Initializer();
initializer.setOutputConfigurationProvider(new OutputConfigurationProvider());
initializer.initialize(preferenceStoreAccess);
}
Aggregations