From 3ee557a91b08bf434e9a245a85bcd8c587d88b76 Mon Sep 17 00:00:00 2001 From: "Vladislav.Soroka" Date: Thu, 9 Jan 2014 18:59:07 +0400 Subject: [PATCH] Gradle: pre-import check added --- .../project/AbstractProjectResolverExtension.java | 4 ++++ .../project/BaseGradleProjectResolverExtension.java | 4 ++++ .../gradle/service/project/GradleProjectResolver.java | 9 ++++++--- .../service/project/GradleProjectResolverExtension.java | 5 +++++ 4 files changed, 19 insertions(+), 3 deletions(-) diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/service/project/AbstractProjectResolverExtension.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/service/project/AbstractProjectResolverExtension.java index cde22784ba0a..2c51b29b1564 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/service/project/AbstractProjectResolverExtension.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/service/project/AbstractProjectResolverExtension.java @@ -152,4 +152,8 @@ public abstract class AbstractProjectResolverExtension implements GradleProjectR @Override public void enhanceLocalProcessing(@NotNull List urls) { } + + @Override + public void preImportCheck() { + } } diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/service/project/BaseGradleProjectResolverExtension.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/service/project/BaseGradleProjectResolverExtension.java index 0a28fccd3347..10993934dc43 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/service/project/BaseGradleProjectResolverExtension.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/service/project/BaseGradleProjectResolverExtension.java @@ -309,6 +309,10 @@ public class BaseGradleProjectResolverExtension implements GradleProjectResolver return myErrorHandler.getUserFriendlyError(error, projectPath, buildFilePath); } + @Override + public void preImportCheck() { + } + @Override public void enhanceRemoteProcessing(@NotNull SimpleJavaParameters parameters) throws ExecutionException { PathsList classPath = parameters.getClassPath(); diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/service/project/GradleProjectResolver.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/service/project/GradleProjectResolver.java index 1b1997b048a2..87e7cfb2beca 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/service/project/GradleProjectResolver.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/service/project/GradleProjectResolver.java @@ -138,17 +138,20 @@ public class GradleProjectResolver implements ExternalSystemProjectResolver> extraJvmArgs = new ArrayList>(); for (GradleProjectResolverExtension resolverExtension = projectResolverChain; resolverExtension != null; resolverExtension = resolverExtension.getNext()) { + // inject ProjectResolverContext into gradle project resolver extensions resolverExtension.setProjectResolverContext(resolverCtx); + // pre-import checks + resolverExtension.preImportCheck(); + // register classes of extra gradle project models required for extensions (e.g. com.android.builder.model.AndroidProject) projectImportAction.addExtraProjectModelClasses(resolverExtension.getExtraProjectModelClasses()); + // collect extra JVM arguments provided by gradle project resolver extensions extraJvmArgs.addAll(resolverExtension.getExtraJvmArgs()); } + final ParametersList parametersList = new ParametersList(); for (KeyValue jvmArg : extraJvmArgs) { parametersList.addProperty(jvmArg.getKey(), jvmArg.getValue()); diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/service/project/GradleProjectResolverExtension.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/service/project/GradleProjectResolverExtension.java index b663dbc3739b..7b101158857d 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/service/project/GradleProjectResolverExtension.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/service/project/GradleProjectResolverExtension.java @@ -105,4 +105,9 @@ public interface GradleProjectResolverExtension extends ParametersEnhancer { @NotNull ExternalSystemException getUserFriendlyError(@NotNull Throwable error, @NotNull String projectPath, @Nullable String buildFilePath); + + /** + * Performs project configuration and other checks before the actual project import (before invocation of gradle tooling API). + */ + void preImportCheck(); }