Smaller changes

This commit is contained in:
Moritz Eysholdt 2016-06-17 18:07:05 +02:00
parent a23adf2b3d
commit ffa109f37f
12 changed files with 92 additions and 42 deletions
gradle
org.eclipse.xtext.testlanguages
org.eclipse.xtext.xtext.generator
src/org/eclipse/xtext/xtext/generator
xtend-gen/org/eclipse/xtext/xtext/generator/junit
org.eclipse.xtext.xtext.wizard
settings.gradle

View file

@ -29,5 +29,7 @@ configurations {
}
sourceSets.main.compileClasspath += configurations.optional
sourceSets.test.compileClasspath += configurations.optional
sourceSets.test.runtimeClasspath += configurations.optional
eclipse.classpath.plusConfigurations += [configurations.optional]
javadoc.classpath += configurations.optional

View file

@ -15,5 +15,6 @@ ext.versions = [
'guice': '3.0',
'antlr': '3.2',
'asm': '5.0.1',
'icu': '52.1'
'icu': '52.1',
'junit': '4.12'
]

View file

@ -1,3 +1,5 @@
dependencies {
compile project(':org.eclipse.xtext.common.types')
compile project(':org.eclipse.xtext')
compile "org.eclipse.core:org.eclipse.core.runtime:$versions.eclipseCore"
}

View file

@ -8,6 +8,7 @@
package org.eclipse.xtext.xtext.generator
import com.google.inject.Injector
import java.util.List
import org.eclipse.xtend.lib.annotations.Accessors
import org.eclipse.xtext.util.internal.Log
import org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2
@ -29,6 +30,7 @@ import org.eclipse.xtext.xtext.generator.ui.contentAssist.ContentAssistFragment2
import org.eclipse.xtext.xtext.generator.ui.labeling.LabelProviderFragment2
import org.eclipse.xtext.xtext.generator.ui.outline.OutlineTreeProviderFragment2
import org.eclipse.xtext.xtext.generator.ui.outline.QuickOutlineFragment2
import org.eclipse.xtext.xtext.generator.ui.projectWizard.SimpleProjectWizardFragment2
import org.eclipse.xtext.xtext.generator.ui.quickfix.QuickfixProviderFragment2
import org.eclipse.xtext.xtext.generator.ui.refactoring.RefactorElementNameFragment2
import org.eclipse.xtext.xtext.generator.ui.templates.CodetemplatesGeneratorFragment2
@ -36,8 +38,6 @@ import org.eclipse.xtext.xtext.generator.validation.ValidatorFragment2
import org.eclipse.xtext.xtext.generator.web.WebIntegrationFragment
import org.eclipse.xtext.xtext.generator.xbase.XbaseGeneratorFragment2
import org.eclipse.xtext.xtext.generator.xbase.XtypeGeneratorFragment2
import java.util.List
import org.eclipse.xtext.xtext.generator.ui.projectWizard.SimpleProjectWizardFragment2
/**
* @author Sven Efftinge - Initial contribution and API

View file

@ -2,6 +2,7 @@ package org.eclipse.xtext.xtext.generator.junit
import com.google.inject.Inject
import com.google.inject.Injector
import org.eclipse.xtend.lib.annotations.Accessors
import org.eclipse.xtext.xtext.generator.AbstractStubGeneratingFragment
import org.eclipse.xtext.xtext.generator.XtextGeneratorNaming
import org.eclipse.xtext.xtext.generator.model.FileAccessFactory
@ -12,14 +13,25 @@ import org.eclipse.xtext.xtext.generator.util.GenModelUtil2
import static extension org.eclipse.xtext.GrammarUtil.*
class Junit4Fragment2 extends AbstractStubGeneratingFragment {
@Inject extension XtextGeneratorNaming
@Inject FileAccessFactory fileAccessFactory
@Accessors(PUBLIC_SETTER)
boolean useDeprecatedClasses
def protected getTestingPackage() {
if (useDeprecatedClasses)
"org.eclipse.xtext.junit4"
else
"org.eclipse.xtext.testing"
}
override generate() {
if (projectConfig.runtimeTest.manifest != null) {
projectConfig.runtimeTest.manifest => [
requiredBundles.addAll(
"org.eclipse.xtext.junit4",
testingPackage,
"org.eclipse.xtext.xbase.lib"
)
exportedPackages.add(grammar.runtimeTestBasePackage)
@ -59,11 +71,11 @@ class Junit4Fragment2 extends AbstractStubGeneratingFragment {
generateUiInjectorProvider.writeTo(projectConfig.eclipsePluginTest.srcGen)
}
def JavaFileAccess generateExampleRuntimeTest() {
val xtextRunner = new TypeReference("org.eclipse.xtext.junit4.XtextRunner")
def protected JavaFileAccess generateExampleRuntimeTest() {
val xtextRunner = new TypeReference(testingPackage + ".XtextRunner")
val runWith = new TypeReference("org.junit.runner.RunWith")
val injectWith = new TypeReference("org.eclipse.xtext.junit4.InjectWith")
val parseHelper = new TypeReference("org.eclipse.xtext.junit4.util.ParseHelper")
val injectWith = new TypeReference(testingPackage + ".InjectWith")
val parseHelper = new TypeReference(testingPackage + ".util.ParseHelper")
val test = new TypeReference("org.junit.Test")
val assert = new TypeReference("org.junit.Assert")
val rootType = new TypeReference(GenModelUtil2.getJavaTypeName(grammar.rules.head.type.classifier, grammar.eResource.resourceSet))
@ -87,15 +99,15 @@ class Junit4Fragment2 extends AbstractStubGeneratingFragment {
''')
}
def exampleRuntimeTest() {
def protected exampleRuntimeTest() {
new TypeReference(grammar.runtimeTestBasePackage, grammar.simpleName + "ParsingTest")
}
def JavaFileAccess generateInjectorProvider() {
def protected JavaFileAccess generateInjectorProvider() {
val file = fileAccessFactory.createJavaFile(injectorProvider)
val globalRegistries = new TypeReference("org.eclipse.xtext.junit4.GlobalRegistries")
val globalStateMemento = new TypeReference("org.eclipse.xtext.junit4", "GlobalRegistries.GlobalStateMemento")
val iRegistryConfigurator = new TypeReference("org.eclipse.xtext.junit4.IRegistryConfigurator")
val globalRegistries = new TypeReference(testingPackage + ".GlobalRegistries")
val globalStateMemento = new TypeReference(testingPackage, "GlobalRegistries.GlobalStateMemento")
val iRegistryConfigurator = new TypeReference(testingPackage + ".IRegistryConfigurator")
val classLoader = new TypeReference("java.lang.ClassLoader")
val guice = new TypeReference("com.google.inject.Guice")
file.content = '''
@ -155,15 +167,15 @@ class Junit4Fragment2 extends AbstractStubGeneratingFragment {
file
}
def TypeReference iInjectorProvider() {
new TypeReference("org.eclipse.xtext.junit4.IInjectorProvider")
def protected TypeReference iInjectorProvider() {
new TypeReference(testingPackage + ".IInjectorProvider")
}
def TypeReference injectorProvider() {
def protected TypeReference injectorProvider() {
new TypeReference(grammar.runtimeTestBasePackage, grammar.simpleName + "InjectorProvider")
}
def JavaFileAccess generateUiInjectorProvider() {
def protected JavaFileAccess generateUiInjectorProvider() {
val file = fileAccessFactory.createJavaFile(uiInjectorProvider)
file.content = '''
public class «uiInjectorProvider.simpleName» implements «iInjectorProvider» {
@ -178,7 +190,7 @@ class Junit4Fragment2 extends AbstractStubGeneratingFragment {
file
}
def TypeReference uiInjectorProvider() {
def protected TypeReference uiInjectorProvider() {
new TypeReference(grammar.eclipsePluginTestBasePackage, grammar.simpleName + "UiInjectorProvider")
}
}

View file

@ -10,6 +10,8 @@ import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EClassifier;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.xtend.lib.annotations.AccessorType;
import org.eclipse.xtend.lib.annotations.Accessors;
import org.eclipse.xtend2.lib.StringConcatenationClient;
import org.eclipse.xtext.AbstractRule;
import org.eclipse.xtext.Grammar;
@ -41,6 +43,19 @@ public class Junit4Fragment2 extends AbstractStubGeneratingFragment {
@Inject
private FileAccessFactory fileAccessFactory;
@Accessors(AccessorType.PUBLIC_SETTER)
private boolean useDeprecatedClasses;
protected String getTestingPackage() {
String _xifexpression = null;
if (this.useDeprecatedClasses) {
_xifexpression = "org.eclipse.xtext.junit4";
} else {
_xifexpression = "org.eclipse.xtext.testing";
}
return _xifexpression;
}
@Override
public void generate() {
IXtextProjectConfig _projectConfig = this.getProjectConfig();
@ -53,8 +68,8 @@ public class Junit4Fragment2 extends AbstractStubGeneratingFragment {
ManifestAccess _manifest_1 = _runtimeTest_1.getManifest();
final Procedure1<ManifestAccess> _function = (ManifestAccess it) -> {
Set<String> _requiredBundles = it.getRequiredBundles();
CollectionExtensions.<String>addAll(_requiredBundles,
"org.eclipse.xtext.junit4",
String _testingPackage = this.getTestingPackage();
CollectionExtensions.<String>addAll(_requiredBundles, _testingPackage,
"org.eclipse.xtext.xbase.lib");
Set<String> _exportedPackages = it.getExportedPackages();
Grammar _grammar = this.getGrammar();
@ -141,11 +156,17 @@ public class Junit4Fragment2 extends AbstractStubGeneratingFragment {
}
}
public JavaFileAccess generateExampleRuntimeTest() {
final TypeReference xtextRunner = new TypeReference("org.eclipse.xtext.junit4.XtextRunner");
protected JavaFileAccess generateExampleRuntimeTest() {
String _testingPackage = this.getTestingPackage();
String _plus = (_testingPackage + ".XtextRunner");
final TypeReference xtextRunner = new TypeReference(_plus);
final TypeReference runWith = new TypeReference("org.junit.runner.RunWith");
final TypeReference injectWith = new TypeReference("org.eclipse.xtext.junit4.InjectWith");
final TypeReference parseHelper = new TypeReference("org.eclipse.xtext.junit4.util.ParseHelper");
String _testingPackage_1 = this.getTestingPackage();
String _plus_1 = (_testingPackage_1 + ".InjectWith");
final TypeReference injectWith = new TypeReference(_plus_1);
String _testingPackage_2 = this.getTestingPackage();
String _plus_2 = (_testingPackage_2 + ".util.ParseHelper");
final TypeReference parseHelper = new TypeReference(_plus_2);
final TypeReference test = new TypeReference("org.junit.Test");
final TypeReference assert_ = new TypeReference("org.junit.Assert");
Grammar _grammar = this.getGrammar();
@ -226,7 +247,7 @@ public class Junit4Fragment2 extends AbstractStubGeneratingFragment {
return this.fileAccessFactory.createXtendFile(_exampleRuntimeTest, _client);
}
public TypeReference exampleRuntimeTest() {
protected TypeReference exampleRuntimeTest() {
Grammar _grammar = this.getGrammar();
String _runtimeTestBasePackage = this._xtextGeneratorNaming.getRuntimeTestBasePackage(_grammar);
Grammar _grammar_1 = this.getGrammar();
@ -235,14 +256,19 @@ public class Junit4Fragment2 extends AbstractStubGeneratingFragment {
return new TypeReference(_runtimeTestBasePackage, _plus);
}
public JavaFileAccess generateInjectorProvider() {
protected JavaFileAccess generateInjectorProvider() {
JavaFileAccess _xblockexpression = null;
{
TypeReference _injectorProvider = this.injectorProvider();
final JavaFileAccess file = this.fileAccessFactory.createJavaFile(_injectorProvider);
final TypeReference globalRegistries = new TypeReference("org.eclipse.xtext.junit4.GlobalRegistries");
final TypeReference globalStateMemento = new TypeReference("org.eclipse.xtext.junit4", "GlobalRegistries.GlobalStateMemento");
final TypeReference iRegistryConfigurator = new TypeReference("org.eclipse.xtext.junit4.IRegistryConfigurator");
String _testingPackage = this.getTestingPackage();
String _plus = (_testingPackage + ".GlobalRegistries");
final TypeReference globalRegistries = new TypeReference(_plus);
String _testingPackage_1 = this.getTestingPackage();
final TypeReference globalStateMemento = new TypeReference(_testingPackage_1, "GlobalRegistries.GlobalStateMemento");
String _testingPackage_2 = this.getTestingPackage();
String _plus_1 = (_testingPackage_2 + ".IRegistryConfigurator");
final TypeReference iRegistryConfigurator = new TypeReference(_plus_1);
final TypeReference classLoader = new TypeReference("java.lang.ClassLoader");
final TypeReference guice = new TypeReference("com.google.inject.Guice");
StringConcatenationClient _client = new StringConcatenationClient() {
@ -440,11 +466,13 @@ public class Junit4Fragment2 extends AbstractStubGeneratingFragment {
return _xblockexpression;
}
public TypeReference iInjectorProvider() {
return new TypeReference("org.eclipse.xtext.junit4.IInjectorProvider");
protected TypeReference iInjectorProvider() {
String _testingPackage = this.getTestingPackage();
String _plus = (_testingPackage + ".IInjectorProvider");
return new TypeReference(_plus);
}
public TypeReference injectorProvider() {
protected TypeReference injectorProvider() {
Grammar _grammar = this.getGrammar();
String _runtimeTestBasePackage = this._xtextGeneratorNaming.getRuntimeTestBasePackage(_grammar);
Grammar _grammar_1 = this.getGrammar();
@ -453,7 +481,7 @@ public class Junit4Fragment2 extends AbstractStubGeneratingFragment {
return new TypeReference(_runtimeTestBasePackage, _plus);
}
public JavaFileAccess generateUiInjectorProvider() {
protected JavaFileAccess generateUiInjectorProvider() {
JavaFileAccess _xblockexpression = null;
{
TypeReference _uiInjectorProvider = this.uiInjectorProvider();
@ -503,7 +531,7 @@ public class Junit4Fragment2 extends AbstractStubGeneratingFragment {
return _xblockexpression;
}
public TypeReference uiInjectorProvider() {
protected TypeReference uiInjectorProvider() {
Grammar _grammar = this.getGrammar();
String _eclipsePluginTestBasePackage = this._xtextGeneratorNaming.getEclipsePluginTestBasePackage(_grammar);
Grammar _grammar_1 = this.getGrammar();
@ -511,4 +539,8 @@ public class Junit4Fragment2 extends AbstractStubGeneratingFragment {
String _plus = (_simpleName + "UiInjectorProvider");
return new TypeReference(_eclipsePluginTestBasePackage, _plus);
}
public void setUseDeprecatedClasses(final boolean useDeprecatedClasses) {
this.useDeprecatedClasses = useDeprecatedClasses;
}
}

View file

@ -2,4 +2,4 @@ dependencies {
compile project(':org.eclipse.xtext')
}
sourceSets.main.resources.srcDirs += 'resources'
sourceSets.main.resources.srcDir 'resources'

View file

@ -16,7 +16,7 @@ class RuntimeTestProjectDescriptor extends TestProjectDescriptor {
override getExternalDependencies() {
val deps = newLinkedHashSet
deps += super.externalDependencies
deps += createXtextDependency("org.eclipse.xtext.junit4") => [maven.scope = Scope.TESTCOMPILE]
deps += createXtextDependency("org.eclipse.xtext.testing") => [maven.scope = Scope.TESTCOMPILE]
deps += createXtextDependency("org.eclipse.xtext.xbase.junit") => [maven.scope = Scope.TESTCOMPILE]
deps
}

View file

@ -28,7 +28,7 @@ class WizardConfiguration {
ProjectLayout projectLayout = ProjectLayout.FLAT
boolean needsGradleWrapper = true
JavaVersion javaVersion = JavaVersion.JAVA6
JavaVersion javaVersion = JavaVersion.JAVA8
val LanguageDescriptor language = new LanguageDescriptor

View file

@ -32,7 +32,7 @@ public class RuntimeTestProjectDescriptor extends TestProjectDescriptor {
final LinkedHashSet<ExternalDependency> deps = CollectionLiterals.<ExternalDependency>newLinkedHashSet();
Set<ExternalDependency> _externalDependencies = super.getExternalDependencies();
Iterables.<ExternalDependency>addAll(deps, _externalDependencies);
ExternalDependency _createXtextDependency = ExternalDependency.createXtextDependency("org.eclipse.xtext.junit4");
ExternalDependency _createXtextDependency = ExternalDependency.createXtextDependency("org.eclipse.xtext.testing");
final Procedure1<ExternalDependency> _function = (ExternalDependency it) -> {
ExternalDependency.MavenCoordinates _maven = it.getMaven();
_maven.setScope(Scope.TESTCOMPILE);

View file

@ -59,7 +59,7 @@ public class WizardConfiguration {
private boolean needsGradleWrapper = true;
private JavaVersion javaVersion = JavaVersion.JAVA6;
private JavaVersion javaVersion = JavaVersion.JAVA8;
private final LanguageDescriptor language = new LanguageDescriptor();

View file

@ -7,5 +7,6 @@ include 'org.eclipse.xtext.xtext.generator'
include 'org.eclipse.xtext.xtext.wizard'
include 'org.eclipse.xtext.testing'
// Test project must be split before it works properly.
// include 'org.eclipse.xtext.tests'
include 'org.eclipse.xtext.tests'
include 'org.eclipse.xtext.ide.tests'
include 'org.eclipse.xtext.testlanguages'