From eec8758a06fb7da82cc878e2d4bb762b7b48634a Mon Sep 17 00:00:00 2001 From: "Vladislav.Soroka" Date: Thu, 15 Jan 2015 20:14:09 +0300 Subject: [PATCH] IDEA-132257 idea 14 eap cannot compile project which is based on gradle (cherry picked from commit fbacfb3) --- .../data/ExternalProjectDataService.java | 17 ++++++++++------- .../builder/ExternalProjectBuilderImpl.groovy | 8 ++++++-- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/service/project/data/ExternalProjectDataService.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/service/project/data/ExternalProjectDataService.java index 8f41ea7ea49f..7ad9473f15f9 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/service/project/data/ExternalProjectDataService.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/service/project/data/ExternalProjectDataService.java @@ -126,13 +126,16 @@ public class ExternalProjectDataService implements ProjectDataService, ExternalProject>, Object>() { - @Override - public Object fun(Map.Entry, ExternalProject> entry) { - return Pair.create(entry.getKey(), entry.getValue().getProjectDir()); - } - })); + LOG.debug("Existing imported projects paths: " + ContainerUtil.map( + myExternalRootProjects.entrySet(), + new Function, ExternalProject>, Object>() { + @Override + public Object fun(Map.Entry, ExternalProject> entry) { + //noinspection ConstantConditions + if (!(entry.getValue() instanceof ExternalProject)) return null; + return Pair.create(entry.getKey(), entry.getValue().getProjectDir()); + } + })); } return externalProject; } diff --git a/plugins/gradle/tooling-extension-impl/src/org/jetbrains/plugins/gradle/tooling/builder/ExternalProjectBuilderImpl.groovy b/plugins/gradle/tooling-extension-impl/src/org/jetbrains/plugins/gradle/tooling/builder/ExternalProjectBuilderImpl.groovy index 096b1e6d8d5b..254acf26e171 100644 --- a/plugins/gradle/tooling-extension-impl/src/org/jetbrains/plugins/gradle/tooling/builder/ExternalProjectBuilderImpl.groovy +++ b/plugins/gradle/tooling-extension-impl/src/org/jetbrains/plugins/gradle/tooling/builder/ExternalProjectBuilderImpl.groovy @@ -133,13 +133,13 @@ class ExternalProjectBuilderImpl implements ModelBuilderService { ExternalSourceDirectorySet resourcesDirectorySet = new DefaultExternalSourceDirectorySet() resourcesDirectorySet.name = sourceSet.resources.name resourcesDirectorySet.srcDirs = sourceSet.resources.srcDirs - resourcesDirectorySet.outputDir = sourceSet.output.resourcesDir + resourcesDirectorySet.outputDir = chooseNotNull(sourceSet.output.resourcesDir, sourceSet.output.classesDir, project.buildDir) resourcesDirectorySet.inheritedCompilerOutput = inheritOutputDirs ExternalSourceDirectorySet javaDirectorySet = new DefaultExternalSourceDirectorySet() javaDirectorySet.name = sourceSet.allJava.name javaDirectorySet.srcDirs = sourceSet.allJava.srcDirs - javaDirectorySet.outputDir = sourceSet.output.classesDir + javaDirectorySet.outputDir = chooseNotNull(sourceSet.output.classesDir, project.buildDir); javaDirectorySet.inheritedCompilerOutput = inheritOutputDirs // javaDirectorySet.excludes = javaExcludes + sourceSet.java.excludes; // javaDirectorySet.includes = javaIncludes + sourceSet.java.includes; @@ -173,6 +173,10 @@ class ExternalProjectBuilderImpl implements ModelBuilderService { result } + static T chooseNotNull(T ... params) { + params.findResult("", { it }) + } + static getFilters(Project project, String taskName) { def includes = [] def excludes = []