ModuleExtendedModel now exposes per configuration artifacts.

Change-Id: I105b34c96bb53ac93218aac3ffd92119a014bae8
This commit is contained in:
Alex Ruiz
2015-02-22 23:27:06 -08:00
committed by Vladislav.Soroka
parent a8fa207faf
commit 4d04fdaf23
3 changed files with 33 additions and 0 deletions

View 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();
}

View 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;
}

View 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;
}
}