Giter VIP home page Giter VIP logo

xtext-gradle-plugin's People

Contributors

akosyakov avatar arnedeutsch avatar cdietrich avatar djozis avatar oehme avatar sgarfinkel avatar spoenemann avatar svenefftinge avatar szarnekow avatar theosotr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

xtext-gradle-plugin's Issues

Fix for Xtext 2.7

There was a breaking change in the StandaloneBuilder in Xtext 2.7. There is a new method setJavaSourceRoots that needs to be called.

Nullpointer Exception with XtextGenerate

The gradle build throws NullPointerException when the generateXtext and compileJava are called from two different build invocations

e,g in a same project with xtext gradle plugin version 1.0.x , do the following

$> gradle generateXtext
$> gradle compileJava

This should throw a NullPointerException

Xtend plugin threw exception with the Gradle daemon

Using 'org.xtext:xtext-gradle-plugin:1.0.5' I got the exception below after applying a Git patch to my repository and doing ./gradlew clean build. Restarting the Gradle daemon solved the problem. The repository is TypeFox/ls-api.

java.lang.IllegalArgumentException: The 'no null' constraint is violated
        at org.eclipse.emf.common.util.AbstractEList.validate(AbstractEList.java:97)
        at org.eclipse.emf.common.util.BasicEList.addUnique(BasicEList.java:418)
        at org.eclipse.emf.common.notify.impl.NotifyingListImpl.doAddUnique(NotifyingListImpl.java:325)
        at org.eclipse.emf.common.notify.impl.NotifyingListImpl.addUnique(NotifyingListImpl.java:309)
        at org.eclipse.emf.common.util.AbstractEList.add(AbstractEList.java:303)
        at org.eclipse.xtext.java.resource.JavaDerivedStateComputer$3.acceptResult(JavaDerivedStateComputer.java:236)
        at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:480)
        at org.eclipse.xtext.java.resource.JavaDerivedStateComputer.installFull(JavaDerivedStateComputer.java:244)
        at org.eclipse.xtext.java.resource.JavaResource$4.apply(JavaResource.java:140)
        at org.eclipse.xtext.java.resource.JavaResource.initializing(JavaResource.java:150)
        at org.eclipse.xtext.java.resource.JavaResource.installFull(JavaResource.java:144)
        at org.eclipse.xtext.java.resource.JavaResource.getContents(JavaResource.java:113)
        at org.eclipse.xtext.build.IncrementalBuilder$InternalStatefulIncrementalBuilder$5.apply(IncrementalBuilder.java:242)
        at org.eclipse.xtext.build.IncrementalBuilder$InternalStatefulIncrementalBuilder$5.apply(IncrementalBuilder.java:1)
        at org.eclipse.xtext.build.ClusteringStorageAwareResourceLoader$2.apply(ClusteringStorageAwareResourceLoader.java:91)
        at org.eclipse.xtext.build.ClusteringStorageAwareResourceLoader$2.apply(ClusteringStorageAwareResourceLoader.java:1)
        at org.eclipse.xtext.xbase.lib.internal.FunctionDelegate.apply(FunctionDelegate.java:42)
        at com.google.common.collect.Lists$TransformingRandomAccessList$1.transform(Lists.java:640)
        at com.google.common.collect.TransformedIterator.next(TransformedIterator.java:48)
        at java.util.AbstractCollection.toArray(AbstractCollection.java:141)
        at java.util.ArrayList.addAll(ArrayList.java:577)
        at com.google.common.collect.Iterables.addAll(Iterables.java:350)
        at org.eclipse.xtext.build.ClusteringStorageAwareResourceLoader.executeClustered(ClusteringStorageAwareResourceLoader.java:95)
        at org.eclipse.xtext.build.BuildContext.executeClustered(BuildContext.java:62)
        at org.eclipse.xtext.build.IncrementalBuilder$InternalStatefulIncrementalBuilder.launch(IncrementalBuilder.java:268)
        at org.eclipse.xtext.build.IncrementalBuilder.build(IncrementalBuilder.java:468)
        at org.eclipse.xtext.build.IncrementalBuilder.build(IncrementalBuilder.java:449)
        at org.xtext.gradle.builder.XtextGradleBuilder.doBuild(XtextGradleBuilder.java:344)
        at org.xtext.gradle.builder.XtextGradleBuilder.access$400(XtextGradleBuilder.java:70)
        at org.xtext.gradle.builder.XtextGradleBuilder$3.apply(XtextGradleBuilder.java:289)
        at org.xtext.gradle.builder.XtextGradleBuilder$3.apply(XtextGradleBuilder.java:252)
        at org.eclipse.xtext.xbase.lib.IteratorExtensions.forEach(IteratorExtensions.java:363)
        at org.eclipse.xtext.xbase.lib.IterableExtensions.forEach(IterableExtensions.java:333)
        at org.xtext.gradle.builder.XtextGradleBuilder.indexChangedClasspathEntries(XtextGradleBuilder.java:295)
        at org.xtext.gradle.builder.XtextGradleBuilder.build(XtextGradleBuilder.java:138)
        at org.xtext.gradle.tasks.XtextGenerate.build(XtextGenerate.java:367)
        at org.xtext.gradle.tasks.XtextGenerate.generate(XtextGenerate.java:224)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:75)
        at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$IncrementalTaskAction.doExecute(AnnotationProcessingTaskFactory.java:245)
        at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:221)
        at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$IncrementalTaskAction.execute(AnnotationProcessingTaskFactory.java:232)
        at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:210)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
        at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)
        at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:66)
        at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
        at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:52)
        at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
        at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53)
        at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:203)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:185)
        at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:66)
        at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:50)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:25)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:110)
        at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:37)
        at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
        at org.gradle.execution.DefaultBuildExecuter.access$000(DefaultBuildExecuter.java:23)
        at org.gradle.execution.DefaultBuildExecuter$1.proceed(DefaultBuildExecuter.java:43)
        at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)
        at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
        at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:30)
        at org.gradle.initialization.DefaultGradleLauncher$4.run(DefaultGradleLauncher.java:153)
        at org.gradle.internal.Factories$1.create(Factories.java:22)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:53)
        at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:150)
        at org.gradle.initialization.DefaultGradleLauncher.access$200(DefaultGradleLauncher.java:32)
        at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:98)
        at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:92)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:63)
        at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:92)
        at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:83)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:99)
        at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)
        at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:48)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:30)
        at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:81)
        at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:46)
        at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:52)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
        at org.gradle.util.Swapper.swap(Swapper.java:38)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.health.DaemonHealthTracker.execute(DaemonHealthTracker.java:47)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:60)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:72)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.health.HintGCAfterBuild.execute(HintGCAfterBuild.java:41)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
        at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:237)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54)
        at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:40)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)

Request support for android data binding

Right now, the way to build an android project with data binding on this branch, requires multiple steps.

  1. Transpile xtend without referring to the generated java files.
    i.e. out comment ...DataBindingLayout...Binding.java in the xtend code,
    e.g. so xtend won't fail due to the missing yet-to-be-generated
    java files.
  2. Build with: ./gradlew :Quotes:build
  3. Make the out commented lines active again.
  4. Build again with ./gradlew :Quotes:build

For every build, you need to repeat these four steps then ./gradlew :Quotes:clean.
Yes, this is a pain in the ass.

If I attempt to build again, after those steps I mentioned without cleaning (e.g. ./gradlew :Quotes:clean), I get this gradle NPE:


FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':Quotes:compileDebugJavaWithJavac'.
> java.lang.NullPointerException (no error message)

* Try:
Run with --info or --debug option to get more log output.

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':Quotes:compileDebugJavaWithJavac'.
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
    at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)
    at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64)
    at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
    at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:52)
    at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
    at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53)
    at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
    at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:203)
    at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:185)
    at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:62)
    at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:50)
    at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54)
    at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:40)
Caused by: java.lang.NullPointerException
    at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:210)
    at com.google.common.collect.Iterables.filter(Iterables.java:584)
    at org.eclipse.xtext.xbase.lib.IterableExtensions.filter(IterableExtensions.java:253)
    at org.xtext.gradle.tasks.XtextGenerate$4.apply(XtextGenerate.java:376)
    at org.xtext.gradle.tasks.XtextGenerate$4.apply(XtextGenerate.java:366)
    at org.eclipse.xtext.xbase.lib.ObjectExtensions.operator_doubleArrow(ObjectExtensions.java:139)
    at org.xtext.gradle.tasks.XtextGenerate.installDebugInfo(XtextGenerate.java:409)
    at org.xtext.gradle.android.XtextAndroidBuilderPlugin$6$2.execute(XtextAndroidBuilderPlugin.java:188)
    at org.xtext.gradle.android.XtextAndroidBuilderPlugin$6$2.execute(XtextAndroidBuilderPlugin.java:185)
    at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:585)
    at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:568)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61)
    ... 14 more

I think we should move the data binding code generation ahead of the Xtend transpilation process.

I tried to study how Kotlin does it, but I haven't found anything yet.

Integration Tests for Idea Plugin

The Idea Plugin only has a few unit tests at the moment. We need at least one end-to-end that builds an IntelliJ plugin and runs a simple test on it. This test will be pretty long-running, but worth the security it gives us.

NoClassDefFoundError for additional lib needed in Validator

Hi,
I need the org.eclipse.core.resources.ResourcesPlugin in my DslValidator for checking files existing on the filesystem.
But I get an NoClassDefFoundError.
I already use the

xtext 'org.eclipse.birt.runtime:org.eclipse.core.resources:3.9.1.v20140825-1431'

in my build.gradle. But nothing changes. The exception is thrown.
how can I fix it? Or where can I define more deps for xtext build? The documentation of this plugin is very small.

thx.

xtend-gen source folder confusion

Something I already noticed in this issue oehme/xtend-contrib#34 : There seems to be a confusion in how the xtend plugin registers its xtend-gen folder as source folders in eclipse.

I have a small toy project using xtend where this can be reproduced: https://github.com/otrosien/spring-boot-xtend-demo

context:

  • java 1.8.0_72,
  • gradle 2.11,
  • eclipse mars.1,
  • buildship 1.0.9.v20160211,
  • xtext & xtend 2.9.1 installed in eclipse

Observed behaviour:

  • a clean workspace and a clean gradle project (without .classpath, .project build bin and xtend-gen folders) imports using "Import project" ... > "gradle project" in a way that xtend registers its output folders using src/{main,test}/xtend-gen
  • after a "gradle assemble" from command-line (+F5 in the IDE) eclipse also shows "build/xtend/{main,test}" as source folders, but actually gives the illusion that they are empty -- probably due to buildship generally trying to hide the contents of the "build" directory from the user.
  • sometimes later, but not easily reproducible, eclipse complains about missing source folders, when gradle is working on the build folder on the command-line

Desired behaviour:

  • eclipse- and gradle-based xtend-gen should not interfer with each other.

Java 6 Failure: NoSuchMethodError: java.net.URLClassLoader.close

Please let me know if bug reports for this Gradle plugin belong elsewhere - apologies if so.

Java: jdk1.6.0_45 (64bit)
Gradle: 2.10
Buildscript dependency: 'org.xtext:xtext-gradle-plugin:1.0.3'
Plugin: 'org.xtext.xtend'

:generateXtext step fails. Ran with -S for stacktrace and failure information:

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':generateXtext'.
> java.net.URLClassLoader.close()V

* Try:
Run with --info or --debug option to get more log output.

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':generateXtext'.
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
        at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)
        at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64)
        at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
        at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:52)
        at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
        at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53)
        at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:203)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:185)
        at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:66)
        at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:50)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:25)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:110)
        at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:37)
        at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
        at org.gradle.execution.DefaultBuildExecuter.access$000(DefaultBuildExecuter.java:23)
        at org.gradle.execution.DefaultBuildExecuter$1.proceed(DefaultBuildExecuter.java:43)
        at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)
        at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
        at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:30)
        at org.gradle.initialization.DefaultGradleLauncher$4.run(DefaultGradleLauncher.java:154)
        at org.gradle.internal.Factories$1.create(Factories.java:22)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:52)
        at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:151)
        at org.gradle.initialization.DefaultGradleLauncher.access$200(DefaultGradleLauncher.java:32)
        at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:99)
        at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:93)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:62)
        at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:93)
        at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:82)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:94)
        at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)
        at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:43)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:28)
        at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:78)
        at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:48)
        at org.gradle.launcher.exec.DaemonUsageSuggestingBuildActionExecuter.execute(DaemonUsageSuggestingBuildActionExecuter.java:51)
        at org.gradle.launcher.exec.DaemonUsageSuggestingBuildActionExecuter.execute(DaemonUsageSuggestingBuildActionExecuter.java:28)
        at org.gradle.launcher.cli.RunBuildAction.run(RunBuildAction.java:43)
        at org.gradle.internal.Actions$RunnableActionAdapter.execute(Actions.java:170)
        at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:237)
        at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:210)
        at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:35)
        at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:24)
        at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:206)
        at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:169)
        at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33)
        at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22)
        at org.gradle.launcher.Main.doAction(Main.java:33)
        at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:54)
        at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:35)
        at org.gradle.launcher.GradleMain.main(GradleMain.java:23)
Caused by: java.lang.NoSuchMethodError: java.net.URLClassLoader.close()V
        at org.xtext.gradle.builder.XtextGradleBuilder.cleanup(XtextGradleBuilder.java:396)
        at org.xtext.gradle.builder.XtextGradleBuilder.doBuild(XtextGradleBuilder.java:347)
        at org.xtext.gradle.builder.XtextGradleBuilder.access$400(XtextGradleBuilder.java:69)
        at org.xtext.gradle.builder.XtextGradleBuilder$3.apply(XtextGradleBuilder.java:288)
        at org.xtext.gradle.builder.XtextGradleBuilder$3.apply(XtextGradleBuilder.java:251)
        at org.eclipse.xtext.xbase.lib.IteratorExtensions.forEach(IteratorExtensions.java:363)
        at org.eclipse.xtext.xbase.lib.IterableExtensions.forEach(IterableExtensions.java:333)
        at org.xtext.gradle.builder.XtextGradleBuilder.indexChangedClasspathEntries(XtextGradleBuilder.java:294)
        at org.xtext.gradle.builder.XtextGradleBuilder.build(XtextGradleBuilder.java:137)
        at org.xtext.gradle.tasks.XtextGenerate.build(XtextGenerate.java:344)
        at org.xtext.gradle.tasks.XtextGenerate.generate(XtextGenerate.java:209)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:75)
        at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$IncrementalTaskAction.doExecute(AnnotationProcessingTaskFactory.java:244)
        at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:220)
        at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$IncrementalTaskAction.execute(AnnotationProcessingTaskFactory.java:231)
        at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:209)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61)
        ... 61 more

I'd like to add my thanks for what has been awesome software so far - I've been using it a lot and Google has solved all my issues so far except this. Is this plugin supposed to support Java 6?

xcore: How to resolve imports

I'm currently try to integrate your wonderful plugin into my build and it works as expected... as long I have just one xcore file. With two of them, one referencing classes of the other, there are problems:

ERROR:PipeType cannot be resolved. (file:/home/palador/dev/pipeman/src/models/src/main/xtext/document.xcore line : 12 column : 12) ERROR:de.sc.pipeman.model.material cannot be resolved. (file:/home/palador/dev/pipeman/src/models/src/main/xtext/document.xcore line : 8 column : 8) ERROR:A generic type in this context must refer to a classifier or a type parameter (file:/home/palador/dev/pipeman/src/models/src/main/xtext/document.xcore line : 12 column : null)

I tried to fix it myself, but I'm not that much into codegeneration configurations. Here are some snipets of my sources:

build.gradle
``
...

apply plugin: 'org.xtext.builder'
apply plugin: 'org.xtext.xtend'
apply plugin: 'java'
apply plugin: 'base'

xtext {
version = "$xtext_version"

sourceSets {
    main {
        srcDir 'src/main/xtext'
    }
}

languages {
    ecore {
        setup = 'org.eclipse.xtext.ecore.EcoreSupport'
    }
    codegen {
        setup = 'org.eclipse.emf.codegen.ecore.xtext.GenModelSupport'
    }
    xcore {
        setup = 'org.eclipse.emf.ecore.xcore.XcoreStandaloneSetup'
        generator.outlet.producesJava = true
        generator.javaSourceLevel = '1.8'
    }
}

}

sourceSets {
main {
output.dir("$buildDir/xcore/main", buildBy: "generateXtext")
}
}

...
``

document.xcore:
``
@genmodel(
modelDirectory="./build/xcore",
complianceLevel="8.0"
)

package de.sc.pipeman.model.document

import de.sc.pipeman.model.material

class PipemanDocument {
String title
refers PipeType defaultPipeType
}
``

material.xcore:
``
@genmodel(
modelDirectory="./build/xcore",
complianceLevel="8.0"
)

package de.sc.pipeman.model.material

class PipeType {
String name
}
``

gradle support for language build

If I understand correct, this is a gradle plugin for using the language. But is there any plans or examples to build the language (jar-files) with gradle? So its possible to use it in a subproject for example.

Thank you

Eclipse .project buildCommand 'org.eclipse.xtext.ui.shared.xtextBuilder' is missing from Gradle generated Eclipse project when using 'org.xtext.android.xtend' plugin

Hopefully I haven't missed something obvious here... sorry if I have!

Versions:
Java 8
com.android.tools.build:gradle:2.0.0-rc1
org.xtext:xtext-android-gradle-plugin:1.0.4

The part where I use these plugins looks like this:

    apply plugin: 'android'
    apply plugin: 'org.xtext.android.xtend'
    tasks.withType(JavaCompile) { options.encoding = 'UTF-8' }
    eclipseJdt << { file('.settings/org.eclipse.core.resources.prefs').write('eclipse.preferences.version=1\nencoding/<project>=utf-8') }

I run 'gradle eclipse' and import the project into Eclipse, but Eclipse never compiles my xtend code. org.eclipse.xtext.ui.shared.xtextBuilder is missing from the .project created.

My current work-around is this:

eclipseJdt << { eclipse.project.buildCommand 'org.eclipse.xtext.ui.shared.xtextBuilder'; eclipse.project.buildCommands.with { swap(size - 1, size - 2) } }

The swap is to get the new command in before the com.android.ide.eclipse.adt.ApkBuilder buildCommand.

I tried to create a stripped down demo gradle script, but it gave me the opposite behavior - the 'com.android.ide.eclipse.adt.ApkBuilder' buildCommand was missing.

I'm presuming there's some sort of incompatibility going on here?

[idea] clean test

the tests reuse some configuration data from disk, which could have bad sideeffects. We need to be able to clean that data

Integration tests for android.builder plugin

We need to integration-test the plugin against a typical Android project. Unfortunately, that requires an Android SDK on the machine running the tests. Travis has Android support in beta. For local builds, we might ignore the tests if Android is not available.

Cache Jar indexes

Currently if there are 10 source sets in a build and each of them depends on Guava (a common scenario), the Guava.jar will be indexed 10 times on a full build.

We should cache jar indexes to make this much faster.

@akosyakov: Since you wanted to look into this, here's where you'd have to put that cache.

Default methods are not inherited

(I'm not sure if this is a bug in this plugin, but the same code compiles in Eclipse and compiled in the old gradle plugin.)

When a Xtend class implements a (java) interface that contains a default method which is not overridden by the class, the build aborts with an error

ERROR:The class TestClass must be defined abstract because it does not implement testMethod()

I thought this might be related to #52, but explicitly setting the javaSourceLevel and/or sourceCompatibilityLevel to 1.8 does not help.

Attached is a minimal example which triggers the issue: xtend-default-method-issue.zip

Document (or automate?) advise about how & where to declare all require xtext + xbase dependencies for a lang

@oehme I'm currently struggling to get xtext-gradle-plugin to work on a sample Xtext language which I've just switched from Xtext 2.8.4 to Xtext 2.9.0 due to dependency errors, and feel some documentation (or perhaps better automation of the required classpath by the xtext-gradle-plugin?) would be of value to end users.

Specifically, I'm trying to cobble this together from https://eclipse.org/Xtext/documentation/350_continuous_integration.html + http://xtext.github.io/xtext-gradle-plugin/xtext-builder.html, and feel something is missing somewhere.

First off, can you confirm that my assumption that the idea here is that until it's possible to build an Xtext lang completely with Gradle (which I understand is not the case as of now), one continues to build the "language" using Tycho as always, but can then use the xtext-gradle-plugin for code generation in the build of runtime projects? So the xtext-gradle-plugin effectively is an alternative for (only) the chapter "Integration in Standard Maven Builds" in the Xtext documentation - right? To test out such a setup, one has to go from mvn install in the dir of the lang to gradlew generateXtext in the project with repositories { mavenLocal() - there is no "smoother" way, right?

Now, where does it get the exact dependencies required to run the code generation from - must a language declare that in the pom.xml (as still Tycho..) of the standalone (non-*.ui) core language bundle, or would you advise to declare it in the build.gradle using the language? Or do you intend the xtext-gradle-plugin to implicitly grab what it needs, based on the Xtext version tag?

I had started out by declaring nothing, then also tried a xtext { version = '2.9.0' in the build.gradle, but first hit:

Execution failed for task ':examples/ch.vorburger.examples.xeemim.pizzas:generateXtext'.
> com.google.common.util.concurrent.ExecutionError: com.google.common.util.concurrent.ExecutionError: com.google.common.util.concurrent.ExecutionError: com.google.common.util.concurrent.ExecutionError: com.google.common.util.concurrent.ExecutionError: java.lang.NoClassDefFoundError: org/eclipse/core/runtime/OperationCanceledException```

Then I've added this to the lang's pom.xml:

<dependencies>
    <dependency>
        <groupId>org.eclipse.xtext</groupId>
        <artifactId>org.eclipse.xtext.xtext</artifactId>
        <version>${xtext.version}</version>
    </dependency>
    <dependency>
        <groupId>org.eclipse.xtext</groupId>
        <artifactId>org.eclipse.xtext.xbase</artifactId>
        <version>${xtext.version}</version>
    </dependency>
</dependencies>```

only to be greeted by:

Execution failed for task ':examples/ch.vorburger.examples.xeemim.pizzas:generateXtext'.
> com.google.common.util.concurrent.ExecutionError: java.lang.NoClassDefFoundError: Lorg/eclipse/jdt/internal/compiler/batch/CompilationUnit;```

That gets solved by this in the pom.xml:

    <dependency>
        <groupId>org.eclipse.jdt</groupId>
        <artifactId>org.eclipse.jdt.core</artifactId>
        <version>3.10.0</version>
    </dependency>

only to be greeted from by:

Execution failed for task ':examples/ch.vorburger.examples.xeemim.pizzas:generateXtext'.

ISerializationContext

Now this ISerializationContext, which appears to be org.eclipse.xtext.serializer.ISerializationContext (it's funny that the Gradle error does not show the package name?), it cannot find anywhere anymore... I've noticed that there is both a org.eclipse.xtext.xtext:2.9.0 (note the double xtext.xtext) as well as a org.eclipse.xtext:2.9.0 (huh?!), and when I check these JARs in ~/.m2/repository, both appear to contain the .class for org.eclipse.xtext.serializer.ISerializationContext, Gradle does not seem to find it?!

There is also this error:

Type org.eclipse.xtext.xbase.file.AbstractFileSystemSupport not present

which is also causing me a test failure in standalone test module, separate from the code generation; it looks like org.eclipse.xtext.xbase.file.AbstractFileSystemSupport was there in 2.8.4 but disappeared in 2.9.0? Not sure what still depends on it...

My Q is: Is this PITA ;-) "normal" and "intended by design" ? Then just close this issue... ;-) But if you meant for this to go a lot smoother, then perhaps some documentation, or more smartness in the gradle plugin, about how to manage dependencies in such a scenario, would be useful to others?

Or maybe you (we?) could extend the https://github.com/xtext/maven-xtext-example to have an example-project-gradle? Let me try that... ;-)

Multi-Language Tests

We need test cases that use at least two different Xtext languages which cross-reference each other.

How to configure this plugin to generate java sources from Xcore

I've been trying to use this plugin to generate java sources from an Xcore file. You can find the build file
here.

Although it generates the classes (and java source) from the xcore model into the /build folder, I cannot reference these from other java classes from within the project. Would it be doable to copy the generated java files into the current source folder?

My second issue is that the xcore generator does not seem to work when I'm referencing ecore types. Remove the comment here and the following error will happen:

ERROR:A generic type in this context must refer to a classifier or a type parameter (file:/Users/guillaume/Experimental/xcore-gradle-example/src/main/resources/model.xcore line : 4)

Last issue is that modifying the DEFAULT_OUTPUT.dir value in the build file does not seem to have any effect.

Outlet configurations

I have a language using a custom _OutputConfigurationProvider _ that was previously generated by the < 1.x version auf the xtext-gradle-plugin.
I'm in the transition process to 1.x and have problems understanding the relation between the sourceset and outlets that are assumend by the plugin.
The documentation states

If you apply the Java plugin, an Xtext Generator task is created for every Java SourceSet

I assumed that I needed to create a sourceset for every outlet that is defined in my _OutputConfigurationProvider _ but the build fails due to missing outlet.
When I manually create the outlet everything works.

Do I need to create the outlets manually or is there some magic that is missing?
What is the generateXXX Task ment for that is created for each sourceset?

NullPointerException when generating Xtend

When trying to switch a large multi-project setup from the old xtend-gradle-plugin to the new xtext-gradle-plugin, I'm getting the following NullPointerException during the generateXtext task:

Caused by: java.lang.NullPointerException
    at org.eclipse.xtext.java.resource.JavaDerivedStateComputer.installStubs(JavaDerivedStateComputer.java:91)
    at org.eclipse.xtext.java.resource.JavaResource$1.apply(JavaResource.java:125)
    at org.eclipse.xtext.java.resource.JavaResource.initializing(JavaResource.java:146)
    at org.eclipse.xtext.java.resource.JavaResource.installStubs(JavaResource.java:129)
    at org.eclipse.xtext.java.resource.JavaResourceDescriptionManager.getResourceDescription(JavaResourceDescriptionManager.java:47)
    at org.eclipse.xtext.build.Indexer.addToIndex(Indexer.java:356)
    at org.eclipse.xtext.build.Indexer$6.apply(Indexer.java:339)
    at org.eclipse.xtext.build.Indexer$6.apply(Indexer.java:1)
    at org.eclipse.xtext.build.ClusteringStorageAwareResourceLoader$2.apply(ClusteringStorageAwareResourceLoader.java:91)
    at org.eclipse.xtext.build.ClusteringStorageAwareResourceLoader$2.apply(ClusteringStorageAwareResourceLoader.java:1)
    at org.eclipse.xtext.xbase.lib.internal.FunctionDelegate.apply(FunctionDelegate.java:42)
    at com.google.common.collect.Lists$TransformingRandomAccessList$1.transform(Lists.java:582)
    at com.google.common.collect.TransformedIterator.next(TransformedIterator.java:48)
    at com.google.common.collect.Iterables.addAll(Iterables.java:348)
    at org.eclipse.xtext.build.ClusteringStorageAwareResourceLoader.executeClustered(ClusteringStorageAwareResourceLoader.java:95)
    at org.eclipse.xtext.build.BuildContext.executeClustered(BuildContext.java:62)
    at org.eclipse.xtext.build.Indexer.getDeltasForChangedResources(Indexer.java:342)
    at org.eclipse.xtext.build.Indexer.computeAndIndexAffected(Indexer.java:238)
    at org.eclipse.xtext.build.IncrementalBuilder$InternalStatefulIncrementalBuilder.launch(IncrementalBuilder.java:215)
    at org.eclipse.xtext.build.IncrementalBuilder.build(IncrementalBuilder.java:495)
    at org.eclipse.xtext.build.IncrementalBuilder.build(IncrementalBuilder.java:476)
    at org.xtext.gradle.builder.XtextGradleBuilder.doBuild(XtextGradleBuilder.java:344)
    at org.xtext.gradle.builder.XtextGradleBuilder.build(XtextGradleBuilder.java:228)
    at org.xtext.gradle.tasks.XtextGenerate.build(XtextGenerate.java:359)
    at org.xtext.gradle.tasks.XtextGenerate.generate(XtextGenerate.java:224)
    at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:75)
    at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$IncrementalTaskAction.doExecute(AnnotationProcessingTaskFactory.java:244)
    at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:220)
    at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$IncrementalTaskAction.execute(AnnotationProcessingTaskFactory.java:231)
    at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:209)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61)
    ... 68 more

Looks like the JDT Parser returns a null result. Unfortunately, I wasn't yet able to find out which files and/or circumstances are causing this problem. I could not find any useful information in the debug output.

Please let me know what information you require.

This was tested with the following versions:

xtext-gradle-plugin version 1.0.4
gradle version 2.11 and 2.12
xtend version 2.9.2

Getting error when applying plugin - Configuration with name 'testCompile' not found.

I am getting an issue using the gradle plugin - Configuration with name 'testCompile' not found.

Stacktace

org.gradle.api.ProjectConfigurationException: A problem occurred configuring project ':app'.
        at org.gradle.configuration.project.LifecycleProjectEvaluator.addConfigurationFailure(LifecycleProjectEvaluator.java:91)
        at org.gradle.configuration.project.LifecycleProjectEvaluator.notifyAfterEvaluate(LifecycleProjectEvaluator.java:86)
        at org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:65)
        at org.gradle.api.internal.project.AbstractProject.evaluate(AbstractProject.java:504)
        at org.gradle.api.internal.project.AbstractProject.evaluate(AbstractProject.java:83)
        at org.gradle.execution.TaskPathProjectEvaluator.configureHierarchy(TaskPathProjectEvaluator.java:47)
        at org.gradle.configuration.DefaultBuildConfigurer.configure(DefaultBuildConfigurer.java:35)
        at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:129)
        at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:106)
        at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:86)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:80)
        at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:33)
        at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:24)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:36)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:26)
        at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:47)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:34)
        at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:119)
        at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:35)
        at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:119)
        at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:24)
        at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:119)
        at org.gradle.launcher.daemon.server.exec.StartStopIfBuildAndStop.execute(StartStopIfBuildAndStop.java:33)
        at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:119)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:71)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:69)
        at org.gradle.util.Swapper.swap(Swapper.java:38)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:69)
        at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:119)
        at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:60)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:34)
        at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:119)
        at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:70)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:34)
        at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:119)
        at org.gradle.launcher.daemon.server.exec.DaemonHygieneAction.execute(DaemonHygieneAction.java:39)
        at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:119)
        at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:46)
        at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:246)
        at org.gradle.internal.concurrent.DefaultExecutorFactory$StoppableExecutorImpl$1.run(DefaultExecutorFactory.java:64)
Caused by: org.gradle.api.artifacts.UnknownConfigurationException: Configuration with name 'testCompile' not found.
        at org.gradle.api.internal.artifacts.configurations.DefaultConfigurationContainer.createNotFoundException(DefaultConfigurationContainer.java:79)
        at org.gradle.api.internal.DefaultNamedDomainObjectCollection.getByName(DefaultNamedDomainObjectCollection.java:192)
        at org.gradle.api.internal.artifacts.configurations.DefaultConfigurationContainer.getByName(DefaultConfigurationContainer.java:69)
        at org.gradle.api.internal.artifacts.configurations.DefaultConfigurationContainer.getByName(DefaultConfigurationContainer.java:33)
        at org.gradle.api.internal.DefaultNamedDomainObjectCollection.getAt(DefaultNamedDomainObjectCollection.java:204)
        at org.gradle.api.internal.artifacts.configurations.DefaultConfigurationContainer.getAt(DefaultConfigurationContainer.java:33)
        at org.xtext.gradle.XtextPlugin$1.execute(XtextPlugin.java:156)
        at org.xtext.gradle.XtextPlugin$1.execute(XtextPlugin.java:90)
        at org.gradle.listener.BroadcastDispatch$ActionInvocationHandler.dispatch(BroadcastDispatch.java:109)
        at org.gradle.listener.BroadcastDispatch$ActionInvocationHandler.dispatch(BroadcastDispatch.java:98)
        at org.gradle.listener.BroadcastDispatch.dispatch(BroadcastDispatch.java:83)
        at org.gradle.listener.BroadcastDispatch.dispatch(BroadcastDispatch.java:31)
        at org.gradle.messaging.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93)
        at com.sun.proxy.$Proxy12.afterEvaluate(Unknown Source)
        at org.gradle.configuration.project.LifecycleProjectEvaluator.notifyAfterEvaluate(LifecycleProjectEvaluator.java:79)
        ... 38 more

The project is an android gradle project, here are my gradle files.

**/build.gradle

buildscript {
    repositories {
        mavenCentral()
        maven {
            url uri('mechanoid-gradle-plugin/repo')
        }
        maven {
            url 'http://dl.bintray.com/ghedeon/gradle'
        }
        maven {
            url "https://oss.sonatype.org/content/repositories/snapshots"
        }
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:1.0.0'
        classpath 'com.robotoworks.mechanoid:mechanoid-gradle-plugin:0.2.2-SNAPSHOT'
        classpath 'com.novoda:gradle-android-command-plugin:1.2.1'
        classpath 'org.robolectric:robolectric-gradle-plugin:0.13.2'
        classpath 'com.novoda:gradle-android-test-plugin:0.10.1'
        classpath 'com.vv.testy:testy:0.1'
        classpath "org.xtext:xtext-gradle-plugin:0.3.6"
    }
}

And then we have another sub project

app/build.gradle

apply plugin: 'com.android.application'
apply plugin: 'mechanoid-gradle-plugin'
apply plugin: 'android-command'
apply plugin: 'testy'
apply plugin: 'org.xtext.xtext'

dependencies {
    // Android dependencies
    compile 'com.android.support:appcompat-v7:21.0.+'
    compile 'com.android.support:cardview-v7:21.0.+'
    compile 'com.android.support:recyclerview-v7:21.0.+'
    compile 'com.android.support:palette-v7:21.0.+'
    compile 'com.google.android.gms:play-services-base:6.5.87'
    compile 'com.google.android.gms:play-services-maps:6.5.87'
    compile 'com.google.android.gms:play-services-appindexing:6.5.87'

    // Repository dependencies
    compile 'com.squareup:otto:1.3.5'
    compile 'javax.inject:javax.inject:1'
    compile 'com.squareup.dagger:dagger:1.2.2'
    provided 'com.squareup.dagger:dagger-compiler:1.2.2'
    compile ('com.github.frankiesardo:icepick:2.0') {
        exclude module: 'support-v4'
    }
    compile 'com.squareup.okhttp:okhttp:2.0.0'
    compile 'com.squareup.okhttp:okhttp-urlconnection:2.0.0'
    compile 'com.squareup.okio:okio:1.0.0'
    compile 'com.squareup.picasso:picasso:2.3.3'
    compile 'com.jakewharton:butterknife:6.1.0'
    compile 'net.hockeyapp.android:HockeySDK:3.0.2'
    compile 'com.sothree.slidinguppanel:library:2.0.2'
    compile 'com.cocosw:undobar:1.5'
    compile 'com.viewpagerindicator:library:2.4.1@aar'
    compile 'uk.co.chrisjenx:calligraphy:1.2.0'
    compile ('com.justeat:com.justeat.mickeydb.lib:1.0.0-SNAPSHOT') {
        exclude module: 'android'
    }

    // Jar libraries
    compile files(
            'libs/mechanoid.jar',
            'libs/libGoogleAnalyticsServices.jar',
            'libs/adxtag3.2.jar')

    provided files(
            'libs/amazon/home-api.jar',
            'libs/amazon/amazonmaps-1.0.2.jar',
            'libs/amazon/motiongestures-api.jar',
            'libs/javawriter-2.1.1.jar')

    // Project dependencies
    compile project(':lib-facebook')

    androidTestCompile ('com.android.support.test.espresso:espresso-core:2.0') {
        exclude group: 'javax.inject'
    }
    androidTestCompile 'com.android.support.test:testing-support-lib:0.1'
    androidTestCompile 'org.mockito:mockito-core:1.9.5'
    androidTestCompile 'com.google.dexmaker:dexmaker:1.2'
    androidTestCompile 'com.google.dexmaker:dexmaker-mockito:1.2'

    xtextTooling 'com.justeat:com.justeat.mickeydb:1.0.0-SNAPSHOT'
}

xtext {
    version = '2.7.3'
    sources {
        srcDir 'src/main/model'
    }

    languages {
        mickey {
            setup = 'com.justeat.mickeydb.MickeyLangStandaloneSetup'
            output.dir = 'src/main/java-gen'
        }
    }
}

Incompatibility with gradle 2.12

I'm having problems using the plugin with gradle 2.12. The build fails with the following error:

An exception occurred applying plugin request [id: 'org.xtext.xtext', version: '1.0.0-RC4']
Failed to apply plugin [id 'org.xtext.xtext']
Could not create an instance of type org.xtext.gradle.tasks.XtextExtension_Decorated.

A look at the stacktrace reveals the following root cause:

[...]
Caused by: java.lang.NoSuchMethodError: org.gradle.api.internal.file.DefaultSourceDirectorySet.(Ljava/lang/String;Lorg/gradle/api/internal/file/FileResolver;)V
at org.xtext.gradle.tasks.XtextExtension.(XtextExtension.java:41)
at org.xtext.gradle.tasks.XtextExtension_Decorated.(Unknown Source)
at org.gradle.internal.reflect.DirectInstantiator.newInstance(DirectInstantiator.java:49)
... 59 more

It seems the constructor of the DefaultSourceSet class has changed (multiple times) since the 2.11 release (see here).

This might already be fixed in master, since apparently XtextSourceDirectorySet is used instead of DefaultSourceSet, so maybe another release is all that is needed?

org.xtext.builder ignores changes in xtextLanguage JAR in mavenLocal() when running under Gradle daemon

Hi @oehme - how is it going at Gradle? ;-) Thanks a lot for continuing to maintain xtext-gradle-plugin.

Unless I'm stupid, I think there is a bug in org.xtext.builder causing it to ignore changes in xtextLanguage JARs in mavenLocal() when running under Gradle daemon - were you aware of this? I've no idea of course if this is something bad in the xtext Gradle plugin (like does it perhaps 'forget' to "release" some.. "handle" to the xtextLanguages dependencies), or an indication of a more fundamental problem in the implementation of the Gradle daemon cache.

Here's how you should be able to reproduce this problem:

echo "org.gradle.daemon=true" >>~/.gradle/gradle.properties
git clone https://github.com/xtext/maven-xtext-example
cd maven-xtext-example/my.mavenized.herolanguage.releng
mvn install
cd ../example-project-gradle
./gradlew test
cd ../my.mavenized.herolanguage
nano src/my/mavenized/jvmmodel/HeroLanguageJvmModelInferrer.xtend 
mvn install
cd ../example-project-gradle
./gradlew test
cat build/herolang/main/my/company/Superman.java

See what I'm trying to show - making some change to the HeroLanguageJvmModelInferrer.xtend which breaks it, say I changed toMethod("hello" to toMethod("helloXX", but whatever - and the next generation should fail because there is a test for the method name, or even just look at the gen. code, but .. nope! It but doesn't - because example-project-gradle is still using the original herolanguage version from before the change, when running under the Gradle daemon!! Uh uh. :-( Now if you remove the org.gradle.daemon=true from the ~/.gradle/gradle.properties and ./gradlew test again, or use ./gradlew --stop first, then it will magically fail (resp. gen. diff. new code..), because now (only) the change made to the DSL/Generator is taken into account.

Note that launching it using ./gradlew --no-daemon test does not seem to help, or not always. Using use ./gradlew --stop sometimes. Removing remove the org.gradle.daemon=true from the ~/.gradle/gradle.properties always does the trick and makes it forget however this is cached wherever. I understand these 3 options should all lead to the same, but I've observed they don't reliably - go figure.

PS: I was originally using mvn 3.3.9 (probably not important), and Gradle 2.9 through the wrapper of the maven-xtext-example/example-project-gradle as seen in https://github.com/xtext/maven-xtext-example/blob/master/example-project-gradle/gradle/wrapper/gradle-wrapper.properties#L6, and org.xtext.builder" version "1.0.0-RC1" as in https://github.com/xtext/maven-xtext-example/blob/master/example-project-gradle/build.gradle#L5. FTR: I'm proposing upgrading both to latest via xtext/maven-xtext-example#37, and have retested the scenario outlined above with both, but that does not help... :-(

PPS: Chapter "6.3.7. What can go wrong with Daemon?" on https://docs.gradle.org/current/userguide/gradle_daemon.html sounds interesting and relevant in this context - in particular "... and third party plugins can destabilize the Daemon process through defects such as memory leaks or global state corruption."

Xtext project cannot be build with version >= 1.0.6

(1) create a new xtext project (2.11-SNAPSHOT) using wizard gives 3 projects

org.xtext.example.mydsl
org.xtext.example.mydsl.ide
org.xtext.example.mydsl.tests

(2) update the xtext gradle plugin version classpath 'org.xtext:xtext-gradle-plugin:1.0.8'
gives

* What went wrong:
Execution failed for task ':org.xtext.example.mydsl.tests:generateTestXtext'.
> java.io.FileNotFoundException: /Users/dietrich/xtext-dev/runtime-EclipseApplicationdxasada/org.xtext.example.mydsl.parent/org.xtext.example.mydsl.tests/build/classes/main (No such file or directory)

seems there was a change in the gradle plugin that make what the wizard generates unusable

going back to

`'org.xtext:xtext-gradle-plugin:1.0.5'

solves the problem

Executing registration steps before xtext-gradle-plugin

As a follow-up from https://www.eclipse.org/forums/index.php?t=rview&goto=1711227#msg_1711227, I open this issue to detail. I am sorry if I am not entirely clear, as both I and the other members of the IncQuery team have only a very limited experience with gradle.

Basically, the code generator of EMF-IncQuery requires some user-defined EPackages available that are not referenced by class. In case of the maven compiler, we provide a plug-in that reads some configuration information and registers the EPackages accordingly, then simply delegates the delegation phase to the xtext-maven-compiler (see http://git.eclipse.org/c/incquery/org.eclipse.incquery.git/tree/maven/incquery-maven-plugin/src/main/java/org/eclipse/incquery/maven/incquerybuilder/IncqueryBuilderMojo.java for details).

The question is whether (1) it is required to do something like that for the grade plugin, or is it possible to do something with the scripting API? Or if not, (2) what do we need to do to allow the code generation work in case of gradle as well?

clean task not clearing down generated folders

Hi,

Is there a way to configure the plugin to clear the DEFAULT_OUTPUT output folders when running a clean? It seems that when I run a gradle clean with a standard xtext-gradle-plugin project it does not clean previous generated source files or is there something I am missing?

project using Xtend for tests cannot be build with plugin version >= 1.0.6

In a project that uses gradle xtend plugin, contains test classes implemented in xtend, and successfully compiles with xtend plugin version 1.0.5. If updated to version 1.0.6, 1.0.8, 1.0.9 or 1.0.10, the testing compilation fails with the following error:

Execution failed for task ':generateTestXtext'.
> java.io.FileNotFoundException: /home/rivasdiaz/Projects/Arquillian/helloworld/build/classes/main (Is a directory)

Allow to use internal repository to resolve idea artifacts

It would be nice if we were able to download artifacts from internal repository (mirror) during "downloadIdea" and "downloadPlugins" tasks.

For example:

archiveUrl = "http://company.com/repos/jetbrains/com/jetbrains/intellij/idea/ideaIC/ideaIC-${ideaVersion}.zip"
explicitPlugins {
  plugin('org.eclipse.xtend.idea', "http://company.com/repos/xtext/idea/${xtextVersion}/org.eclipse.xtend.idea-${xtextVersion}.zip")
  plugin('org.eclipse.xtext.idea', "http://company.com/repos/xtext/idea/${xtextVersion}/org.eclipse.xtext.idea-${xtextVersion}.zip")
  plugin('org.eclipse.xtext.xtext.idea', "http://company.com/repos/xtext/idea/${xtextVersion}/org.eclipse.xtext.xtext.idea-${xtextVersion}.zip")
}

[IDEA] Sources! We need sources!

After doing 'gradle eclipse' on an IDEA project, the classpath entries pointing to idea plugins don't contain any sources.
It should by default have the sources attached.

Add output cleanup option

Currently, the plugin does not automatically clean the output folder on an Xtext clean build and also doesn't hook into gradle clean. This is because some output folders are generate-once and we don't want them to be deleted.

We should add an option to the outlet configuration to specify whether an outlet should be cleaned automatically or not. This should be respected by both the builder and the clean task.

Error running gradle assemble or gradle runIdea

Hey,

Having a problem with the xtext gradle idea plugin in the xtext beta build 2.9.0.v201505220408

โžœ  org.xtext.example.mydsl.idea  gradle assemble      

FAILURE: Build failed with an exception.

* Where:
Build file '/Users/ian.warwick/Documents/sdev/wspace/xtext_sandbox_2015/org.xtext.example.mydsl.idea/build.gradle' line: 2

* What went wrong:
A problem occurred evaluating root project 'org.xtext.example.mydsl.idea'.
> No signature of method: build_merovsdsjsi6ojbesq3gc9t7h$_run_closure1.id() is applicable for argument types: (java.lang.String) values: [org.xtend.xtend]
  Possible solutions: is(java.lang.Object), is(java.lang.Object), find(), find(), find(groovy.lang.Closure), find(groovy.lang.Closure)

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

Gradle problem when refering to Xtext generated class from Xtend

Steps to reproduce:

  • create a new Xtext project without any extra modules, with Gradle build and Gradle source code layout
  • add the following Xtend class
package org.xtext.example.mydsl

import org.xtext.example.mydsl.services.MyDslGrammarAccess
import com.google.inject.Inject

class Foo {
    @Inject MyDslGrammarAccess grammarAccess
   def foo() {
        grammarAccess.greetingAccess.helloKeyword_0
    }   
}

Run gradle install

Results in

ERROR:The method getGreetingAccess() from the type MyDslGrammarAccess refers to the missing type Object (file:/Users/koehnlein/Documents/devel/ride-master/ws/org.xtext.example.mydsl.parent/org.xtext.example.mydsl/src/main/java/org/xtext/example/mydsl/Foo.xtend line : 10 column : 23)
FAILED

Xtend Code that does Compile in Eclipse does not with gradle

Using Xtext 2.10 and Plugin 1.0.5
Having this Grammar

Model:
    greetings+=Greeting*;

Greeting:
    'Hello' name=ID ('from' from=[Greeting])? '!';

and this formatter


class MyDslFormatter extends AbstractFormatter2 {

    @Inject extension MyDslGrammarAccess ga

    def dispatch void format(Model model, extension IFormattableDocument document) {
        for (Greeting greetings : model.getGreetings()) {
            greetings.format;
        }
    }

    def dispatch void format(Greeting model, extension IFormattableDocument document) {
        model.prepend[newLines = 2]
        model.regionFor.keyword(greetingAccess.fromKeyword_2_0).prepend[newLine]

        interior(model.regionFor.keyword(greetingAccess.fromKeyword_2_0).previousSemanticRegion, model.regionFor.keyword(greetingAccess.exclamationMarkKeyword_3))[indent]
    }

}

which compiles fine in eclipse i get with gradle

:org.xtext.example.mydsl1:generateXtext
Download https://jcenter.bintray.com/org/eclipse/xtext/org.eclipse.xtext.java/2.10.0/org.eclipse.xtext.java-2.10.0.pom
Download https://jcenter.bintray.com/org/eclipse/xtext/org.eclipse.xtext.java/2.10.0/org.eclipse.xtext.java-2.10.0.jar
ERROR:The method getGreetingAccess() from the type MyDslGrammarAccess refers to the missing type Object (file:/Users/dietrich/Documents/workspaceNeon2/org.xtext.example.mydsl1.parent/org.xtext.example.mydsl1/src/org/xtext/example/mydsl1/formatting2/MyDslFormatter.xtend line : 25 column : 27)
ERROR:The method getGreetingAccess() from the type MyDslGrammarAccess refers to the missing type Object (file:/Users/dietrich/Documents/workspaceNeon2/org.xtext.example.mydsl1.parent/org.xtext.example.mydsl1/src/org/xtext/example/mydsl1/formatting2/MyDslFormatter.xtend line : 27 column : 36)
ERROR:The method getGreetingAccess() from the type MyDslGrammarAccess refers to the missing type Object (file:/Users/dietrich/Documents/workspaceNeon2/org.xtext.example.mydsl1.parent/org.xtext.example.mydsl1/src/org/xtext/example/mydsl1/formatting2/MyDslFormatter.xtend line : 27 column : 116)
:org.xtext.example.mydsl1:generateXtext FAILED

Multi-SourceSet Tests

We need tests for model files in different sourceSets (e.g main and tests), making sure that cross-references are only possible in the direction of dependencies.

NPE on 'gradle eclipse'

Tried the new wizard (eclipse/xtext#570)

  1. created a set of xtext projects (actived all project kinds, used the defaults otherwise).
  2. generated code (right click grammar, generate xtext code)
  3. go into 'org.xtext.example.mydsl.idea' and type 'gradle eclipse'

Failed to notify ProjectEvaluationListener.afterEvaluate(), but primary configuration failure takes precedence.
org.gradle.internal.event.ListenerNotificationException: Failed to notify project evaluation listener.
at org.gradle.internal.event.BroadcastDispatch.dispatch(BroadcastDispatch.java:98)
at org.gradle.internal.event.BroadcastDispatch.dispatch(BroadcastDispatch.java:31)
at org.gradle.messaging.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93)
at com.sun.proxy.$Proxy11.afterEvaluate(Unknown Source)
at org.gradle.configuration.project.LifecycleProjectEvaluator.notifyAfterEvaluate(LifecycleProjectEvaluator.java:67)
at org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:61)
at org.gradle.api.internal.project.AbstractProject.evaluate(AbstractProject.java:488)
at org.gradle.api.internal.project.AbstractProject.evaluate(AbstractProject.java:86)
at org.gradle.execution.TaskPathProjectEvaluator.configureHierarchy(TaskPathProjectEvaluator.java:42)
at org.gradle.configuration.DefaultBuildConfigurer.configure(DefaultBuildConfigurer.java:35)
at org.gradle.initialization.DefaultGradleLauncher$4.run(DefaultGradleLauncher.java:143)
at org.gradle.internal.Factories$1.create(Factories.java:22)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:62)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:47)
at org.gradle.initialization.DefaultGradleLauncher.runBuildOperation(DefaultGradleLauncher.java:189)
at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:140)
at org.gradle.initialization.DefaultGradleLauncher.access$200(DefaultGradleLauncher.java:35)
at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:104)
at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:97)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:62)
at org.gradle.initialization.DefaultGradleLauncher.runRootBuildOperation(DefaultGradleLauncher.java:184)
at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:97)
at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:86)
at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:93)
at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)
at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:43)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:27)
at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:72)
at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:44)
at org.gradle.launcher.exec.DaemonUsageSuggestingBuildActionExecuter.execute(DaemonUsageSuggestingBuildActionExecuter.java:50)
at org.gradle.launcher.exec.DaemonUsageSuggestingBuildActionExecuter.execute(DaemonUsageSuggestingBuildActionExecuter.java:27)
at org.gradle.launcher.cli.RunBuildAction.run(RunBuildAction.java:40)
at org.gradle.internal.Actions$RunnableActionAdapter.execute(Actions.java:170)
at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:237)
at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:210)
at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:35)
at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:24)
at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:206)
at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:169)
at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33)
at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22)
at org.gradle.launcher.Main.doAction(Main.java:33)
at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:54)
at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:35)
at org.gradle.launcher.GradleMain.main(GradleMain.java:23)
Cause 1: java.lang.NullPointerException
at java.io.File.(File.java:360)
at org.xtext.gradle.idea.tasks.GradleExtensions.operator_divide(GradleExtensions.java:36)
at org.xtext.gradle.idea.tasks.IdeaExtension.getIdeaHome(IdeaExtension.java:197)
at org.xtext.gradle.idea.tasks.IdeaExtension_Decorated.getIdeaHome(Unknown Source)
at org.xtext.gradle.idea.IdeaDevelopmentPlugin$2.execute(IdeaDevelopmentPlugin.java:41)
at org.xtext.gradle.idea.IdeaDevelopmentPlugin$2.execute(IdeaDevelopmentPlugin.java:38)
at org.gradle.internal.event.BroadcastDispatch$ActionInvocationHandler.dispatch(BroadcastDispatch.java:113)
at org.gradle.internal.event.BroadcastDispatch$ActionInvocationHandler.dispatch(BroadcastDispatch.java:102)
at org.gradle.internal.event.BroadcastDispatch.dispatch(BroadcastDispatch.java:87)
at org.gradle.internal.event.BroadcastDispatch.dispatch(BroadcastDispatch.java:31)
at org.gradle.messaging.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93)
at com.sun.proxy.$Proxy11.afterEvaluate(Unknown Source)
at org.gradle.configuration.project.LifecycleProjectEvaluator.notifyAfterEvaluate(LifecycleProjectEvaluator.java:67)
at org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:61)
at org.gradle.api.internal.project.AbstractProject.evaluate(AbstractProject.java:488)
at org.gradle.api.internal.project.AbstractProject.evaluate(AbstractProject.java:86)
at org.gradle.execution.TaskPathProjectEvaluator.configureHierarchy(TaskPathProjectEvaluator.java:42)
at org.gradle.configuration.DefaultBuildConfigurer.configure(DefaultBuildConfigurer.java:35)
at org.gradle.initialization.DefaultGradleLauncher$4.run(DefaultGradleLauncher.java:143)
at org.gradle.internal.Factories$1.create(Factories.java:22)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:62)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:47)
at org.gradle.initialization.DefaultGradleLauncher.runBuildOperation(DefaultGradleLauncher.java:189)
at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:140)
at org.gradle.initialization.DefaultGradleLauncher.access$200(DefaultGradleLauncher.java:35)
at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:104)
at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:97)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:62)
at org.gradle.initialization.DefaultGradleLauncher.runRootBuildOperation(DefaultGradleLauncher.java:184)
at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:97)
at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:86)
at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:93)
at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)
at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:43)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:27)
at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:72)
at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:44)
at org.gradle.launcher.exec.DaemonUsageSuggestingBuildActionExecuter.execute(DaemonUsageSuggestingBuildActionExecuter.java:50)
at org.gradle.launcher.exec.DaemonUsageSuggestingBuildActionExecuter.execute(DaemonUsageSuggestingBuildActionExecuter.java:27)
at org.gradle.launcher.cli.RunBuildAction.run(RunBuildAction.java:40)
at org.gradle.internal.Actions$RunnableActionAdapter.execute(Actions.java:170)
at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:237)
at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:210)
at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:35)
at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:24)
at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:206)
at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:169)
at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33)
at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22)
at org.gradle.launcher.Main.doAction(Main.java:33)
at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:54)
at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:35)
at org.gradle.launcher.GradleMain.main(GradleMain.java:23)
Cause 2: java.lang.NullPointerException
at java.io.File.(File.java:360)
at org.xtext.gradle.idea.tasks.GradleExtensions.operator_divide(GradleExtensions.java:36)
at org.xtext.gradle.idea.tasks.IdeaExtension.getIdeaHome(IdeaExtension.java:197)
at org.xtext.gradle.idea.tasks.IdeaExtension_Decorated.getIdeaHome(Unknown Source)
at org.xtext.gradle.idea.IdeaComponentPlugin$6.execute(IdeaComponentPlugin.java:242)
at org.xtext.gradle.idea.IdeaComponentPlugin$6.execute(IdeaComponentPlugin.java:237)
at org.gradle.internal.event.BroadcastDispatch$ActionInvocationHandler.dispatch(BroadcastDispatch.java:113)
at org.gradle.internal.event.BroadcastDispatch$ActionInvocationHandler.dispatch(BroadcastDispatch.java:102)
at org.gradle.internal.event.BroadcastDispatch.dispatch(BroadcastDispatch.java:87)
at org.gradle.internal.event.BroadcastDispatch.dispatch(BroadcastDispatch.java:31)
at org.gradle.messaging.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93)
at com.sun.proxy.$Proxy11.afterEvaluate(Unknown Source)
at org.gradle.configuration.project.LifecycleProjectEvaluator.notifyAfterEvaluate(LifecycleProjectEvaluator.java:67)
at org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:61)
at org.gradle.api.internal.project.AbstractProject.evaluate(AbstractProject.java:488)
at org.gradle.api.internal.project.AbstractProject.evaluate(AbstractProject.java:86)
at org.gradle.execution.TaskPathProjectEvaluator.configureHierarchy(TaskPathProjectEvaluator.java:42)
at org.gradle.configuration.DefaultBuildConfigurer.configure(DefaultBuildConfigurer.java:35)
at org.gradle.initialization.DefaultGradleLauncher$4.run(DefaultGradleLauncher.java:143)
at org.gradle.internal.Factories$1.create(Factories.java:22)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:62)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:47)
at org.gradle.initialization.DefaultGradleLauncher.runBuildOperation(DefaultGradleLauncher.java:189)
at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:140)
at org.gradle.initialization.DefaultGradleLauncher.access$200(DefaultGradleLauncher.java:35)
at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:104)
at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:97)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:62)
at org.gradle.initialization.DefaultGradleLauncher.runRootBuildOperation(DefaultGradleLauncher.java:184)
at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:97)
at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:86)
at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:93)
at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)
at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:43)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:27)
at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:72)
at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:44)
at org.gradle.launcher.exec.DaemonUsageSuggestingBuildActionExecuter.execute(DaemonUsageSuggestingBuildActionExecuter.java:50)
at org.gradle.launcher.exec.DaemonUsageSuggestingBuildActionExecuter.execute(DaemonUsageSuggestingBuildActionExecuter.java:27)
at org.gradle.launcher.cli.RunBuildAction.run(RunBuildAction.java:40)
at org.gradle.internal.Actions$RunnableActionAdapter.execute(Actions.java:170)
at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:237)
at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:210)
at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:35)
at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:24)
at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:206)
at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:169)
at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33)
at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22)
at org.gradle.launcher.Main.doAction(Main.java:33)
at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:54)
at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:35)
at org.gradle.launcher.GradleMain.main(GradleMain.java:23)

[IDEA] More standard excludes

In a fresh example project, the final zip files contains asm and cglib, both of which are provided by IntelliJ and this must not be packaged.

Separate modelpath from classpath

The XtextGenerate task currently has a single concept called classpath which serves two purposes:

  • providing JVM types for Xbase
  • providing models for other Xtext languages to link against

We should split this into classpath and modelpath for two reasons

  • most classpath entries don't contain models and should not be indexed. This will be a huge performance gain
  • the term classpath doesn't make any sense for ecosystems like C/C++

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.