Search in sources :

Example 26 with URI

use of org.eclipse.emf.common.util.URI in project xtext-xtend by eclipse.

the class ActiveAnnotationsRuntimeTest method compileMacroResourceSet.

public XtextResourceSet compileMacroResourceSet(final Pair<String, String> macroFile, final Pair<String, String> clientFile) {
    final URI macroURI = this.copyToDisk(this.macroProject, macroFile);
    final URI clientURI = this.copyToDisk(this.clientProject, clientFile);
    File _file = new File(this.workspaceRoot, this.macroProject);
    FileProjectConfig _fileProjectConfig = new FileProjectConfig(_file);
    final Procedure1<FileProjectConfig> _function = (FileProjectConfig it) -> {
        it.addSourceFolder("src");
    };
    final FileProjectConfig macroProjectConfig = ObjectExtensions.<FileProjectConfig>operator_doubleArrow(_fileProjectConfig, _function);
    File _file_1 = new File(this.workspaceRoot, this.clientProject);
    FileProjectConfig _fileProjectConfig_1 = new FileProjectConfig(_file_1);
    final Procedure1<FileProjectConfig> _function_1 = (FileProjectConfig it) -> {
        it.addSourceFolder("src");
    };
    final FileProjectConfig clientProjectConfig = ObjectExtensions.<FileProjectConfig>operator_doubleArrow(_fileProjectConfig_1, _function_1);
    final XtextResourceSet macroResourceSet = this.resourceSetProvider.get();
    ProjectConfigAdapter.install(macroResourceSet, macroProjectConfig);
    macroResourceSet.setClasspathURIContext(this.getClass().getClassLoader());
    macroResourceSet.createResource(macroURI);
    final XtextResourceSet resourceSet = this.resourceSetProvider.get();
    ProjectConfigAdapter.install(resourceSet, clientProjectConfig);
    resourceSet.createResource(clientURI);
    final IAcceptor<CompilationTestHelper.Result> _function_2 = (CompilationTestHelper.Result result) -> {
        ClassLoader _classLoader = this.getClass().getClassLoader();
        final DelegatingClassloader classLoader = new DelegatingClassloader(_classLoader, result);
        resourceSet.setClasspathURIContext(classLoader);
        this.compiler.setJavaCompilerClassPath(classLoader);
    };
    this.compiler.compile(macroResourceSet, _function_2);
    return resourceSet;
}
Also used : CompilationTestHelper(org.eclipse.xtext.xbase.testing.CompilationTestHelper) XtextResourceSet(org.eclipse.xtext.resource.XtextResourceSet) DelegatingClassloader(org.eclipse.xtend.core.tests.macro.DelegatingClassloader) FileProjectConfig(org.eclipse.xtext.workspace.FileProjectConfig) URI(org.eclipse.emf.common.util.URI) XtendFile(org.eclipse.xtend.core.xtend.XtendFile) File(java.io.File)

Example 27 with URI

use of org.eclipse.emf.common.util.URI in project xtext-xtend by eclipse.

the class JavaFileConverterTest method runConverter.

public void runConverter() {
    try {
        File _parentFile = new File("").getAbsoluteFile().getParentFile();
        final File srcProjectRoot = new File(_parentFile, this.sourceProject);
        File _parentFile_1 = srcProjectRoot.getParentFile();
        final File testProject = new File(_parentFile_1, this.targetProject);
        String _path = srcProjectRoot.getPath();
        String _plus = ("Working in " + _path);
        InputOutput.<String>println(_plus);
        final PathTraverser pathTraverser = new PathTraverser();
        String _absolutePath = srcProjectRoot.getAbsolutePath();
        final Set<URI> allResourceUris = pathTraverser.findAllResourceUris(_absolutePath, new Predicate<URI>() {

            @Override
            public boolean apply(final URI input) {
                final String fileName = input.toFileString();
                return (("java".equals(input.fileExtension()) && (!fileName.contains("xtend-gen"))) && (!fileName.contains("batch-compiler-data")));
            }
        });
        int errors = 0;
        int problems = 0;
        int files = 0;
        int filesWithErrorsOrProblems = 0;
        for (final URI uri : allResourceUris) {
            {
                String _fileString = uri.toFileString();
                final File file = new File(_fileString);
                final String javaFileProjRelPath = uri.toFileString().replace(srcProjectRoot.getAbsolutePath(), "");
                InputOutput.<String>println(("Converting: " + javaFileProjRelPath));
                boolean compileError = false;
                final String javaCode = Files.toString(file, Charset.defaultCharset());
                final JavaConverter.ConversionResult xtendResult = this.converToXtend(file.getName(), javaCode);
                final int knownProblemsFound = IterableExtensions.size(xtendResult.getProblems());
                String xtendCode = xtendResult.getXtendCode();
                String fileName = (javaFileProjRelPath + ".xtend");
                try {
                    this.file(xtendCode, true);
                } catch (final Throwable _t) {
                    if (_t instanceof AssertionError) {
                        final AssertionError error = (AssertionError) _t;
                        compileError = true;
                        StringConcatenation _builder = new StringConcatenation();
                        _builder.append(javaFileProjRelPath);
                        _builder.append(" - ");
                        String _message = error.getMessage();
                        _builder.append(_message);
                        System.err.println(_builder);
                    } else {
                        throw Exceptions.sneakyThrow(_t);
                    }
                }
                if (((knownProblemsFound != 0) || compileError)) {
                    filesWithErrorsOrProblems++;
                    if ((knownProblemsFound != 0)) {
                        this.writeToFile(testProject, javaFileProjRelPath, javaCode);
                        String _fileName = fileName;
                        fileName = (_fileName + ".error");
                    } else {
                        errors++;
                    }
                }
                int _problems = problems;
                problems = (_problems + knownProblemsFound);
                files++;
                this.writeToFile(testProject, fileName, xtendCode);
            }
        }
        StringConcatenation _builder = new StringConcatenation();
        _builder.append("Not covered Errors (");
        _builder.append(errors);
        _builder.append(")");
        InputOutput.<String>println(_builder.toString());
        StringConcatenation _builder_1 = new StringConcatenation();
        _builder_1.append("Known Problems (");
        _builder_1.append(problems);
        _builder_1.append(")");
        InputOutput.<String>println(_builder_1.toString());
        StringConcatenation _builder_2 = new StringConcatenation();
        _builder_2.append("Files read (");
        _builder_2.append(files);
        _builder_2.append(")");
        InputOutput.<String>println(_builder_2.toString());
        StringConcatenation _builder_3 = new StringConcatenation();
        _builder_3.append("Files with errors/problems (");
        _builder_3.append(filesWithErrorsOrProblems);
        _builder_3.append(")");
        InputOutput.<String>println(_builder_3.toString());
        InputOutput.<String>println("Done...");
        Assert.assertEquals(this.problemsExpected, problems);
        Assert.assertEquals(this.errorsExpected, errors);
    } catch (Throwable _e) {
        throw Exceptions.sneakyThrow(_e);
    }
}
Also used : StringConcatenation(org.eclipse.xtend2.lib.StringConcatenation) PathTraverser(org.eclipse.xtext.mwe.PathTraverser) File(java.io.File) URI(org.eclipse.emf.common.util.URI)

Example 28 with URI

use of org.eclipse.emf.common.util.URI in project xtext-xtend by eclipse.

the class XtendIncrementalBuilderTest method testSimpleMixedBuild04.

@Test
public void testSimpleMixedBuild04() {
    final Procedure1<BuildRequest> _function = (BuildRequest it) -> {
        StringConcatenation _builder = new StringConcatenation();
        _builder.append("import b.B");
        _builder.newLine();
        _builder.append("class A {");
        _builder.newLine();
        _builder.append("   ");
        _builder.append("def foo() {");
        _builder.newLine();
        _builder.append("      ");
        _builder.append("B.foo");
        _builder.newLine();
        _builder.append("   ");
        _builder.append("}");
        _builder.newLine();
        _builder.append("}");
        _builder.newLine();
        URI _minus = this.operator_minus("src/A.xtend", _builder.toString());
        StringConcatenation _builder_1 = new StringConcatenation();
        _builder_1.append("package b;");
        _builder_1.newLine();
        _builder_1.append("public class B {");
        _builder_1.newLine();
        _builder_1.append("\t");
        _builder_1.append("public static String foo;");
        _builder_1.newLine();
        _builder_1.append("}");
        _builder_1.newLine();
        URI _minus_1 = this.operator_minus("src/b/B.java", _builder_1.toString());
        it.setDirtyFiles(Collections.<URI>unmodifiableList(CollectionLiterals.<URI>newArrayList(_minus, _minus_1)));
    };
    final BuildRequest buildRequest = this.newBuildRequest(_function);
    this.build(buildRequest);
    Assert.assertTrue(this.issues.toString(), this.issues.isEmpty());
    Assert.assertEquals(2, this.generated.size());
    Assert.assertTrue(this.containsSuffix(this.generated.values(), "xtend-gen/A.java"));
}
Also used : StringConcatenation(org.eclipse.xtend2.lib.StringConcatenation) BuildRequest(org.eclipse.xtext.build.BuildRequest) URI(org.eclipse.emf.common.util.URI) AbstractIncrementalBuilderTest(org.eclipse.xtext.testing.builder.AbstractIncrementalBuilderTest) Test(org.junit.Test)

Example 29 with URI

use of org.eclipse.emf.common.util.URI in project xtext-xtend by eclipse.

the class XtendIncrementalBuilderTest method testSimpleMixedBuild.

@Test
public void testSimpleMixedBuild() {
    final Procedure1<BuildRequest> _function = (BuildRequest it) -> {
        StringConcatenation _builder = new StringConcatenation();
        _builder.append("class A {");
        _builder.newLine();
        _builder.append("\t");
        _builder.append("public mypack.MyClass someField");
        _builder.newLine();
        _builder.append("}");
        _builder.newLine();
        URI _minus = this.operator_minus("src/MyFile.xtend", _builder.toString());
        StringConcatenation _builder_1 = new StringConcatenation();
        _builder_1.append("package mypack;");
        _builder_1.newLine();
        _builder_1.append("class MyClass {");
        _builder_1.newLine();
        _builder_1.append("\t");
        _builder_1.append("public String a;");
        _builder_1.newLine();
        _builder_1.append("}");
        _builder_1.newLine();
        URI _minus_1 = this.operator_minus("src/mypack/MyClass.java", _builder_1.toString());
        it.setDirtyFiles(Collections.<URI>unmodifiableList(CollectionLiterals.<URI>newArrayList(_minus, _minus_1)));
    };
    final BuildRequest buildRequest = this.newBuildRequest(_function);
    this.build(buildRequest);
    Assert.assertTrue(this.issues.toString(), this.issues.isEmpty());
    Assert.assertEquals(2, this.generated.size());
    Assert.assertTrue(this.containsSuffix(this.generated.values(), "xtend-gen/A.java"));
}
Also used : StringConcatenation(org.eclipse.xtend2.lib.StringConcatenation) BuildRequest(org.eclipse.xtext.build.BuildRequest) URI(org.eclipse.emf.common.util.URI) AbstractIncrementalBuilderTest(org.eclipse.xtext.testing.builder.AbstractIncrementalBuilderTest) Test(org.junit.Test)

Example 30 with URI

use of org.eclipse.emf.common.util.URI in project xtext-xtend by eclipse.

the class XtendIncrementalBuilderTest method testInnerClassEnumProblem.

@Test
public void testInnerClassEnumProblem() {
    final Procedure1<BuildRequest> _function = (BuildRequest it) -> {
        StringConcatenation _builder = new StringConcatenation();
        _builder.append("package mypack;");
        _builder.newLine();
        _builder.append("public class EnumTest {");
        _builder.newLine();
        _builder.append("\t");
        _builder.append("public enum AB {");
        _builder.newLine();
        _builder.append("\t\t");
        _builder.append("A,");
        _builder.newLine();
        _builder.append("\t\t");
        _builder.append("B");
        _builder.newLine();
        _builder.append("\t");
        _builder.append("}");
        _builder.newLine();
        _builder.append("}");
        _builder.newLine();
        _builder.newLine();
        URI _minus = this.operator_minus("src/mypack/EnumTest.java", _builder.toString());
        StringConcatenation _builder_1 = new StringConcatenation();
        _builder_1.append("package mypack");
        _builder_1.newLine();
        _builder_1.append("class Demo {");
        _builder_1.newLine();
        _builder_1.append("\t");
        _builder_1.append("def void format() {");
        _builder_1.newLine();
        _builder_1.append("\t\t");
        _builder_1.append("var EnumTest.AB x = EnumTest.AB.A");
        _builder_1.newLine();
        _builder_1.append("\t\t");
        _builder_1.append("println(x)");
        _builder_1.newLine();
        _builder_1.append("\t");
        _builder_1.append("}");
        _builder_1.newLine();
        _builder_1.append("}");
        _builder_1.newLine();
        URI _minus_1 = this.operator_minus("src/mypack/Demo.xtend", _builder_1.toString());
        it.setDirtyFiles(Collections.<URI>unmodifiableList(CollectionLiterals.<URI>newArrayList(_minus, _minus_1)));
    };
    final BuildRequest buildRequest = this.newBuildRequest(_function);
    this.build(buildRequest);
    Assert.assertTrue(this.issues.toString(), this.issues.isEmpty());
    Assert.assertEquals(2, this.generated.size());
}
Also used : StringConcatenation(org.eclipse.xtend2.lib.StringConcatenation) BuildRequest(org.eclipse.xtext.build.BuildRequest) URI(org.eclipse.emf.common.util.URI) AbstractIncrementalBuilderTest(org.eclipse.xtext.testing.builder.AbstractIncrementalBuilderTest) Test(org.junit.Test)

Aggregations

URI (org.eclipse.emf.common.util.URI)305 Resource (org.eclipse.emf.ecore.resource.Resource)85 Test (org.junit.Test)79 EObject (org.eclipse.emf.ecore.EObject)55 StringConcatenation (org.eclipse.xtend2.lib.StringConcatenation)37 ResourceSet (org.eclipse.emf.ecore.resource.ResourceSet)33 XtextResource (org.eclipse.xtext.resource.XtextResource)32 XtextResourceSet (org.eclipse.xtext.resource.XtextResourceSet)26 BuildRequest (org.eclipse.xtext.build.BuildRequest)23 File (java.io.File)20 AbstractIncrementalBuilderTest (org.eclipse.xtext.testing.builder.AbstractIncrementalBuilderTest)20 ResourceSetImpl (org.eclipse.emf.ecore.resource.impl.ResourceSetImpl)19 IOException (java.io.IOException)18 InternalEObject (org.eclipse.emf.ecore.InternalEObject)18 EPackage (org.eclipse.emf.ecore.EPackage)15 IResourceDescription (org.eclipse.xtext.resource.IResourceDescription)15 InputStream (java.io.InputStream)14 ByteArrayInputStream (java.io.ByteArrayInputStream)13 ArrayList (java.util.ArrayList)13 NullProgressMonitor (org.eclipse.core.runtime.NullProgressMonitor)13