From 4d04fdaf23e9e0fe8893950be5c832dce404b170 Mon Sep 17 00:00:00 2001 From: Alex Ruiz Date: Sun, 22 Feb 2015 23:27:06 -0800 Subject: [PATCH] ModuleExtendedModel now exposes per configuration artifacts. Change-Id: I105b34c96bb53ac93218aac3ffd92119a014bae8 --- .../plugins/gradle/model/ModuleExtendedModel.java | 9 +++++++++ .../builder/ModuleExtendedModelBuilderImpl.java | 13 +++++++++++++ .../tooling/internal/ModuleExtendedModelImpl.java | 11 +++++++++++ 3 files changed, 33 insertions(+) diff --git a/plugins/gradle/tooling-extension-api/src/org/jetbrains/plugins/gradle/model/ModuleExtendedModel.java b/plugins/gradle/tooling-extension-api/src/org/jetbrains/plugins/gradle/model/ModuleExtendedModel.java index 91889d85fa9f..998fb8a1b2c5 100644 --- a/plugins/gradle/tooling-extension-api/src/org/jetbrains/plugins/gradle/model/ModuleExtendedModel.java +++ b/plugins/gradle/tooling-extension-api/src/org/jetbrains/plugins/gradle/model/ModuleExtendedModel.java @@ -20,6 +20,8 @@ import org.gradle.tooling.model.DomainObjectSet; import java.io.File; import java.io.Serializable; import java.util.List; +import java.util.Map; +import java.util.Set; /** * @deprecated Use {@link com.intellij.openapi.externalSystem.model.ExternalProject} model instead. @@ -77,4 +79,11 @@ public interface ModuleExtendedModel extends Serializable { * @return the compiler output directories. */ ExtIdeaCompilerOutput getCompilerOutput(); + + /** + * The artifacts per configuration. + * + * @return a mapping between the name of a configuration and the files associated with it. + */ + Map> getArtifactsByConfiguration(); } diff --git a/plugins/gradle/tooling-extension-impl/src/org/jetbrains/plugins/gradle/tooling/builder/ModuleExtendedModelBuilderImpl.java b/plugins/gradle/tooling-extension-impl/src/org/jetbrains/plugins/gradle/tooling/builder/ModuleExtendedModelBuilderImpl.java index 214dad27db0e..06dc8aabea4d 100644 --- a/plugins/gradle/tooling-extension-impl/src/org/jetbrains/plugins/gradle/tooling/builder/ModuleExtendedModelBuilderImpl.java +++ b/plugins/gradle/tooling-extension-impl/src/org/jetbrains/plugins/gradle/tooling/builder/ModuleExtendedModelBuilderImpl.java @@ -17,6 +17,8 @@ package org.jetbrains.plugins.gradle.tooling.builder; import org.gradle.api.Project; import org.gradle.api.Task; +import org.gradle.api.artifacts.Configuration; +import org.gradle.api.artifacts.ConfigurationContainer; import org.gradle.api.tasks.SourceSet; import org.gradle.api.tasks.SourceSetContainer; import org.gradle.api.tasks.SourceSetOutput; @@ -175,6 +177,17 @@ public class ModuleExtendedModelBuilderImpl implements ModelBuilderService { moduleVersionModel.setContentRoots(Collections.singleton(contentRoot)); moduleVersionModel.setCompilerOutput(compilerOutput); + + ConfigurationContainer configurations = project.getConfigurations(); + SortedMap configurationsByName = configurations.getAsMap(); + + Map> artifactsByConfiguration = new HashMap>(); + for (Map.Entry configurationEntry : configurationsByName.entrySet()) { + Set files = configurationEntry.getValue().getAllArtifacts().getFiles().getFiles(); + artifactsByConfiguration.put(configurationEntry.getKey(), files); + } + moduleVersionModel.setArtifactsByConfiguration(artifactsByConfiguration); + return moduleVersionModel; } diff --git a/plugins/gradle/tooling-extension-impl/src/org/jetbrains/plugins/gradle/tooling/internal/ModuleExtendedModelImpl.java b/plugins/gradle/tooling-extension-impl/src/org/jetbrains/plugins/gradle/tooling/internal/ModuleExtendedModelImpl.java index 547029c273f2..7f2e9c6a242d 100644 --- a/plugins/gradle/tooling-extension-impl/src/org/jetbrains/plugins/gradle/tooling/internal/ModuleExtendedModelImpl.java +++ b/plugins/gradle/tooling-extension-impl/src/org/jetbrains/plugins/gradle/tooling/internal/ModuleExtendedModelImpl.java @@ -24,6 +24,7 @@ import org.jetbrains.plugins.gradle.model.ModuleExtendedModel; import java.io.File; import java.util.Collections; import java.util.List; +import java.util.Map; import java.util.Set; /** @@ -38,6 +39,7 @@ public class ModuleExtendedModelImpl implements ModuleExtendedModel { private List myArtifacts; private Set myContentRoots; private ExtIdeaCompilerOutput myCompilerOutput; + private Map> myArtifactsByConfiguration; public ModuleExtendedModelImpl(String name, String group, String version, File buildDir) { myName = name; @@ -94,4 +96,13 @@ public class ModuleExtendedModelImpl implements ModuleExtendedModel { public void setCompilerOutput(ExtIdeaCompilerOutput compilerOutput) { myCompilerOutput = compilerOutput; } + + public void setArtifactsByConfiguration(Map> artifactsByConfiguration) { + myArtifactsByConfiguration = artifactsByConfiguration; + } + + @Override + public Map> getArtifactsByConfiguration() { + return myArtifactsByConfiguration == null ? Collections.>emptyMap() : myArtifactsByConfiguration; + } } -- 2.32.0