Gradle: ServiceLoader instance isn't required

This commit is contained in:
Lari Hotari
2016-10-13 09:34:56 +03:00
parent f89a05f8e3
commit 0579d273e8
@@ -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<ModelBuilderService> buildersLoader =
ServiceLoader.load(ModelBuilderService.class, ExtraModelBuilder.class.getClassLoader());
private final List<ModelBuilderService> 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 {