From 0579d273e8a0ab5228cee087002786d99e1cb6a2 Mon Sep 17 00:00:00 2001 From: Lari Hotari Date: Wed, 12 Oct 2016 13:51:09 +0300 Subject: [PATCH] Gradle: ServiceLoader instance isn't required --- .../gradle/tooling/internal/ExtraModelBuilder.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/plugins/gradle/tooling-extension-impl/src/org/jetbrains/plugins/gradle/tooling/internal/ExtraModelBuilder.java b/plugins/gradle/tooling-extension-impl/src/org/jetbrains/plugins/gradle/tooling/internal/ExtraModelBuilder.java index 58bdaeaaf025..0eb30c3f6108 100644 --- a/plugins/gradle/tooling-extension-impl/src/org/jetbrains/plugins/gradle/tooling/internal/ExtraModelBuilder.java +++ b/plugins/gradle/tooling-extension-impl/src/org/jetbrains/plugins/gradle/tooling/internal/ExtraModelBuilder.java @@ -15,6 +15,7 @@ */ package org.jetbrains.plugins.gradle.tooling.internal; +import com.google.common.collect.Lists; import org.gradle.api.Project; import org.gradle.tooling.provider.model.ToolingModelBuilder; import org.gradle.util.GradleVersion; @@ -25,6 +26,7 @@ import org.jetbrains.plugins.gradle.tooling.ModelBuilderService; import org.jetbrains.plugins.gradle.tooling.annotation.TargetVersions; import org.jetbrains.plugins.gradle.tooling.util.VersionMatcher; +import java.util.List; import java.util.ServiceLoader; /** @@ -33,25 +35,24 @@ import java.util.ServiceLoader; */ @SuppressWarnings("UnusedDeclaration") public class ExtraModelBuilder implements ToolingModelBuilder { - - private ServiceLoader buildersLoader = - ServiceLoader.load(ModelBuilderService.class, ExtraModelBuilder.class.getClassLoader()); + private final List modelBuilderServices; @NotNull private final GradleVersion myCurrentGradleVersion; public ExtraModelBuilder() { - this.myCurrentGradleVersion = GradleVersion.current(); + this(GradleVersion.current()); } @TestOnly public ExtraModelBuilder(@NotNull GradleVersion gradleVersion) { this.myCurrentGradleVersion = gradleVersion; + this.modelBuilderServices = Lists.newArrayList(ServiceLoader.load(ModelBuilderService.class, ExtraModelBuilder.class.getClassLoader())); } @Override public boolean canBuild(String modelName) { - for (ModelBuilderService service : buildersLoader) { + for (ModelBuilderService service : modelBuilderServices) { if (service.canBuild(modelName) && isVersionMatch(service)) return true; } return false; @@ -59,7 +60,7 @@ public class ExtraModelBuilder implements ToolingModelBuilder { @Override public Object buildAll(String modelName, Project project) { - for (ModelBuilderService service : buildersLoader) { + for (ModelBuilderService service : modelBuilderServices) { if (service.canBuild(modelName) && isVersionMatch(service)) { final long startTime = System.currentTimeMillis(); try {