ModuleExtendedModel now exposes per configuration artifacts. appcode/140.2716 clion/140.2717
authorAlex Ruiz <alruiz@google.com>
Mon, 23 Feb 2015 07:27:06 +0000 (23:27 -0800)
committerVladislav.Soroka <Vladislav.Soroka@jetbrains.com>
Wed, 25 Feb 2015 12:06:08 +0000 (15:06 +0300)
Change-Id: I105b34c96bb53ac93218aac3ffd92119a014bae8

plugins/gradle/tooling-extension-api/src/org/jetbrains/plugins/gradle/model/ModuleExtendedModel.java
plugins/gradle/tooling-extension-impl/src/org/jetbrains/plugins/gradle/tooling/builder/ModuleExtendedModelBuilderImpl.java
plugins/gradle/tooling-extension-impl/src/org/jetbrains/plugins/gradle/tooling/internal/ModuleExtendedModelImpl.java

index 91889d85fa9f09503654d47dd28d4bec64a56286..998fb8a1b2c531a0b1648af7ba056cb036ca0364 100644 (file)
@@ -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<String, Set<File>> getArtifactsByConfiguration();
 }
index 214dad27db0ec0ea99b43c8dbbdaddd2910b99de..06dc8aabea4d6b645e9c1d0e3089f45a88f5e59c 100644 (file)
@@ -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.<ExtIdeaContentRoot>singleton(contentRoot));
     moduleVersionModel.setCompilerOutput(compilerOutput);
+
+    ConfigurationContainer configurations = project.getConfigurations();
+    SortedMap<String, Configuration> configurationsByName = configurations.getAsMap();
+
+    Map<String, Set<File>> artifactsByConfiguration = new HashMap<String, Set<File>>();
+    for (Map.Entry<String, Configuration> configurationEntry : configurationsByName.entrySet()) {
+      Set<File> files = configurationEntry.getValue().getAllArtifacts().getFiles().getFiles();
+      artifactsByConfiguration.put(configurationEntry.getKey(), files);
+    }
+    moduleVersionModel.setArtifactsByConfiguration(artifactsByConfiguration);
+
     return moduleVersionModel;
   }
 
index 547029c273f2dcfdca85ad622a02eb1555c1357d..7f2e9c6a242d0577647dbcb98b9e90ffa80eb552 100644 (file)
@@ -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<File> myArtifacts;
   private Set<ExtIdeaContentRoot> myContentRoots;
   private ExtIdeaCompilerOutput myCompilerOutput;
+  private Map<String, Set<File>> 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<String, Set<File>> artifactsByConfiguration) {
+    myArtifactsByConfiguration = artifactsByConfiguration;
+  }
+
+  @Override
+  public Map<String, Set<File>> getArtifactsByConfiguration() {
+    return myArtifactsByConfiguration == null ? Collections.<String, Set<File>>emptyMap() : myArtifactsByConfiguration;
+  }
 }