use of org.gradle.internal.graph.GraphRenderer in project gradle by gradle.
the class AsciiDependencyReportRenderer method startConfiguration.
@Override
public void startConfiguration(final Configuration configuration) {
if (hasConfigs) {
getTextOutput().println();
}
hasConfigs = true;
GraphRenderer renderer = new GraphRenderer(getTextOutput());
renderer.visit(new Action<StyledTextOutput>() {
public void execute(StyledTextOutput styledTextOutput) {
getTextOutput().withStyle(Identifier).text(configuration.getName());
getTextOutput().withStyle(Description).text(getDescription(configuration));
if (!configuration.isCanBeResolved()) {
getTextOutput().withStyle(Info).text(" (n)");
}
}
}, true);
NodeRenderer nodeRenderer = new SimpleNodeRenderer();
dependencyGraphRenderer = new DependencyGraphRenderer(renderer, nodeRenderer, legendRenderer);
}
use of org.gradle.internal.graph.GraphRenderer in project gradle by gradle.
the class DependentComponentsRenderer method render.
@Override
public void render(final ComponentSpec component, final TextReportBuilder builder) {
ComponentSpecInternal internalProtocol = (ComponentSpecInternal) component;
DependentComponentsRenderableDependency root = getRenderableDependencyOf(component, internalProtocol);
if (!showNonBuildable && !root.isBuildable()) {
hiddenNonBuildable = true;
return;
}
StyledTextOutput output = builder.getOutput();
GraphRenderer renderer = new GraphRenderer(output);
renderer.visit(new Action<StyledTextOutput>() {
@Override
public void execute(StyledTextOutput output) {
output.withStyle(Identifier).text(component.getName());
output.withStyle(Description).text(" - Components that depend on " + component.getDisplayName());
}
}, true);
DependentComponentsGraphRenderer dependentsGraphRenderer = new DependentComponentsGraphRenderer(renderer, showNonBuildable, showTestSuites);
if (root.getChildren().isEmpty()) {
output.withStyle(Info).text("No dependents");
output.println();
} else {
dependentsGraphRenderer.render(root);
output.println();
}
if (dependentsGraphRenderer.hasSeenTestSuite()) {
seenTestSuite = true;
}
if (dependentsGraphRenderer.hasHiddenTestSuite()) {
hiddenTestSuite = true;
}
if (dependentsGraphRenderer.hasHiddenNonBuildable()) {
hiddenNonBuildable = true;
}
}
use of org.gradle.internal.graph.GraphRenderer in project gradle by gradle.
the class DependencyInsightReportTask method report.
@TaskAction
public void report() {
final Configuration configuration = getConfiguration();
if (configuration == null) {
throw new InvalidUserDataException("Dependency insight report cannot be generated because the input configuration was not specified. " + "\nIt can be specified from the command line, e.g: '" + getPath() + " --configuration someConf --dependency someDep'");
}
if (dependencySpec == null) {
throw new InvalidUserDataException("Dependency insight report cannot be generated because the dependency to show was not specified." + "\nIt can be specified from the command line, e.g: '" + getPath() + " --dependency someDep'");
}
StyledTextOutput output = getTextOutputFactory().create(getClass());
GraphRenderer renderer = new GraphRenderer(output);
ResolutionResult result = configuration.getIncoming().getResolutionResult();
final Set<DependencyResult> selectedDependencies = new LinkedHashSet<DependencyResult>();
result.allDependencies(new Action<DependencyResult>() {
@Override
public void execute(DependencyResult dependencyResult) {
if (dependencySpec.isSatisfiedBy(dependencyResult)) {
selectedDependencies.add(dependencyResult);
}
}
});
if (selectedDependencies.isEmpty()) {
output.println("No dependencies matching given input were found in " + String.valueOf(configuration));
return;
}
Collection<RenderableDependency> sortedDeps = new DependencyInsightReporter().prepare(selectedDependencies, getVersionSelectorScheme(), getVersionComparator());
NodeRenderer nodeRenderer = new NodeRenderer() {
public void renderNode(StyledTextOutput target, RenderableDependency node, boolean alreadyRendered) {
boolean leaf = node.getChildren().isEmpty();
target.text(leaf ? configuration.getName() : node.getName());
if (alreadyRendered && !leaf) {
target.withStyle(Info).text(" (*)");
}
}
};
LegendRenderer legendRenderer = new LegendRenderer(output);
DependencyGraphRenderer dependencyGraphRenderer = new DependencyGraphRenderer(renderer, nodeRenderer, legendRenderer);
int i = 1;
for (final RenderableDependency dependency : sortedDeps) {
renderer.visit(new Action<StyledTextOutput>() {
public void execute(StyledTextOutput out) {
out.withStyle(Identifier).text(dependency.getName());
if (StringUtils.isNotEmpty(dependency.getDescription())) {
out.withStyle(Description).text(" (" + dependency.getDescription() + ")");
}
switch(dependency.getResolutionState()) {
case FAILED:
out.withStyle(Failure).text(" FAILED");
break;
case RESOLVED:
break;
case UNRESOLVED:
out.withStyle(Failure).text(" (n)");
break;
}
}
}, true);
dependencyGraphRenderer.render(dependency);
boolean last = i++ == sortedDeps.size();
if (!last) {
output.println();
}
}
legendRenderer.printLegend();
}
use of org.gradle.internal.graph.GraphRenderer in project gradle by gradle.
the class ProjectReportTask method generate.
@Override
protected void generate(Project project) throws IOException {
BuildClientMetaData metaData = getClientMetaData();
StyledTextOutput textOutput = getRenderer().getTextOutput();
render(project, new GraphRenderer(textOutput), true, textOutput);
if (project.getChildProjects().isEmpty()) {
textOutput.withStyle(Info).text("No sub-projects");
textOutput.println();
}
textOutput.println();
textOutput.text("To see a list of the tasks of a project, run ");
metaData.describeCommand(textOutput.withStyle(UserInput), "<project-path>:" + ProjectInternal.TASKS_TASK);
textOutput.println();
textOutput.text("For example, try running ");
Project exampleProject = project.getChildProjects().isEmpty() ? project : getChildren(project).get(0);
metaData.describeCommand(textOutput.withStyle(UserInput), exampleProject.absoluteProjectPath(ProjectInternal.TASKS_TASK));
textOutput.println();
if (project != project.getRootProject()) {
textOutput.println();
textOutput.text("To see a list of all the projects in this build, run ");
metaData.describeCommand(textOutput.withStyle(UserInput), project.getRootProject().absoluteProjectPath(ProjectInternal.PROJECTS_TASK));
textOutput.println();
}
}
Aggregations