From 1607cbf27fa0a2e5b4449e88c7bf5bf614549309 Mon Sep 17 00:00:00 2001 From: Sven Efftinge Date: Wed, 12 Aug 2015 16:14:45 +0200 Subject: [PATCH 1/4] [idea] unify how we obtain virtual files for psi elements plus some other minor changes --- .../org/eclipse/xtext/generator/trace/AbstractTraceRegion.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/org.eclipse.xtext/src/org/eclipse/xtext/generator/trace/AbstractTraceRegion.java b/plugins/org.eclipse.xtext/src/org/eclipse/xtext/generator/trace/AbstractTraceRegion.java index 1c78d200a..f74237931 100644 --- a/plugins/org.eclipse.xtext/src/org/eclipse/xtext/generator/trace/AbstractTraceRegion.java +++ b/plugins/org.eclipse.xtext/src/org/eclipse/xtext/generator/trace/AbstractTraceRegion.java @@ -343,7 +343,7 @@ public abstract class AbstractTraceRegion { if (data.getSrcRelativePath() == null) { if (!allNull) throw new IllegalStateException( - "If multiple associated locations are present, the path has to be set"); + "Iff multiple associated locations are present, the path has to be set"); } else { allNull = false; path = data.getSrcRelativePath(); From 51feb032baf353a3a506aa6f2949a9565620efd4 Mon Sep 17 00:00:00 2001 From: Dennis Huebner Date: Thu, 13 Aug 2015 13:46:27 +0200 Subject: [PATCH 2/4] [tests][misc] Fixed remove Export Package. Reduced test execution time. ActiveAnnotationsProcessingInIDETest from 280s to 30s Signed-off-by: Dennis Huebner --- .../eclipse/xtext/util/MergeableManifest.java | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/plugins/org.eclipse.xtext.util/src/org/eclipse/xtext/util/MergeableManifest.java b/plugins/org.eclipse.xtext.util/src/org/eclipse/xtext/util/MergeableManifest.java index 080ace83a..855c7eb01 100644 --- a/plugins/org.eclipse.xtext.util/src/org/eclipse/xtext/util/MergeableManifest.java +++ b/plugins/org.eclipse.xtext.util/src/org/eclipse/xtext/util/MergeableManifest.java @@ -8,6 +8,8 @@ *******************************************************************************/ package org.eclipse.xtext.util; +import static com.google.common.collect.Sets.*; + import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStream; @@ -24,6 +26,7 @@ import java.util.Set; import java.util.jar.Attributes; import java.util.jar.Manifest; +import com.google.common.base.Objects; import com.google.common.collect.Lists; /** @@ -215,6 +218,25 @@ public class MergeableManifest extends Manifest { getMainAttributes().put(REQUIRE_BUNDLE, result); } + /** + * @since 2.9 + */ + public String getBREE() { + return (String) getMainAttributes().get(BUNDLE_REQUIRED_EXECUTION_ENV); + } + + /** + * @since 2.9 + */ + public void setBREE(String bree) { + String oldValue = getBREE(); + if(Objects.equal(oldValue, bree)) { + return; + } + getMainAttributes().put(BUNDLE_REQUIRED_EXECUTION_ENV, bree); + this.modified = true; + } + public boolean isModified() { return modified; } @@ -259,6 +281,18 @@ public class MergeableManifest extends Manifest { this.modified = modified.get(); getMainAttributes().put(EXPORT_PACKAGE, result); } + + /** + * adds the qualified names to the export-package attribute, if not already + * present. + * + * @param packages - packages to add + * + * @since 2.9 + */ + public void addExportedPackages(String... packages) { + addExportedPackages(newHashSet(packages)); + } public void addImportedPackages(Set packages) { String s = (String) getMainAttributes().get(IMPORT_PACKAGE); From 2dcb254f509da4d00ac1c309dfab75514e73b5f6 Mon Sep 17 00:00:00 2001 From: Dennis Huebner Date: Fri, 14 Aug 2015 15:41:50 +0200 Subject: [PATCH 3/4] [xtext][args] Added some helpful error messages Signed-off-by: Dennis Huebner --- .../src/org/eclipse/xtext/xtext/XtextLinker.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/plugins/org.eclipse.xtext/src/org/eclipse/xtext/xtext/XtextLinker.java b/plugins/org.eclipse.xtext/src/org/eclipse/xtext/xtext/XtextLinker.java index aff633549..cafd8c71e 100644 --- a/plugins/org.eclipse.xtext/src/org/eclipse/xtext/xtext/XtextLinker.java +++ b/plugins/org.eclipse.xtext/src/org/eclipse/xtext/xtext/XtextLinker.java @@ -163,12 +163,23 @@ public class XtextLinker extends Linker { if (!argument.isCalledByName()) { RuleCall ruleCall = EcoreUtil2.getContainerOfType(argument, RuleCall.class); AbstractRule calledRule = ruleCall.getRule(); - if (calledRule instanceof ParserRule && !calledRule.eIsProxy()) { + if (!(calledRule instanceof ParserRule)) { + producer.addDiagnostic(new DiagnosticMessage("Arguments can only be used with parser rules.", Severity.ERROR, null)); + return; + } + if (!calledRule.eIsProxy()) { ParserRule casted = (ParserRule) calledRule; int idx = ruleCall.getArguments().indexOf(argument); if (idx < casted.getParameters().size()) { argument.setParameter(casted.getParameters().get(idx)); return; + } else if (casted.getParameters().size() == 0) { + producer.addDiagnostic(new DiagnosticMessage( + "Rule " + calledRule.getName() + " has no arguments.", Severity.ERROR, null)); + } else { + String message = "Invalid number of arguments for rule " + calledRule.getName() + ", expecting " + + casted.getParameters().size() + " but was " + (idx+1); + producer.addDiagnostic(new DiagnosticMessage(message, Severity.ERROR, null)); } } } From d52b2b27313ae1ade91ae39c9c92b61359c45cb1 Mon Sep 17 00:00:00 2001 From: Sebastian Zarnekow Date: Mon, 17 Aug 2015 16:09:03 +0200 Subject: [PATCH 4/4] [394436] Fixed URIs and added unit test --- .../org/eclipse/xtext/Xtext.genmodel | 26 ++++++++++++++----- .../xtext/xtext/URIsInEcoreFilesTest.java | 26 +++++++++++++++++++ 2 files changed, 46 insertions(+), 6 deletions(-) create mode 100644 tests/org.eclipse.xtext.tests/src/org/eclipse/xtext/xtext/URIsInEcoreFilesTest.java diff --git a/plugins/org.eclipse.xtext/org/eclipse/xtext/Xtext.genmodel b/plugins/org.eclipse.xtext/org/eclipse/xtext/Xtext.genmodel index 867be9a08..85cfe1ce6 100644 --- a/plugins/org.eclipse.xtext/org/eclipse/xtext/Xtext.genmodel +++ b/plugins/org.eclipse.xtext/org/eclipse/xtext/Xtext.genmodel @@ -84,7 +84,9 @@ - + + + @@ -96,14 +98,26 @@ - - - - - + + + + + + + + + + + + + + + + + diff --git a/tests/org.eclipse.xtext.tests/src/org/eclipse/xtext/xtext/URIsInEcoreFilesTest.java b/tests/org.eclipse.xtext.tests/src/org/eclipse/xtext/xtext/URIsInEcoreFilesTest.java new file mode 100644 index 000000000..8c1068359 --- /dev/null +++ b/tests/org.eclipse.xtext.tests/src/org/eclipse/xtext/xtext/URIsInEcoreFilesTest.java @@ -0,0 +1,26 @@ +/******************************************************************************* + * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + *******************************************************************************/ +package org.eclipse.xtext.xtext; + +import org.eclipse.xtext.junit4.internal.AbstractPortableURIsTest; +import org.junit.Test; + +/** + * @author zarnekow - Initial contribution and API + */ +public class URIsInEcoreFilesTest extends AbstractPortableURIsTest { + + @Test public void testXtext() { + doTestResource("org.eclipse.xtext/org/eclipse/xtext/Xtext.ecore", "xtext"); + } + + @Test public void testXtextGenmodel() { + doTestResource("org.eclipse.xtext/org/eclipse/xtext/Xtext.genmodel", "xtext"); + } + +}