[ https://issues.apache.org/jira/browse/MPIR-431?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17724712#comment-17724712 ]
ASF GitHub Bot commented on MPIR-431: ------------------------------------- michael-o commented on code in PR #47: URL: https://github.com/apache/maven-project-info-reports-plugin/pull/47#discussion_r1199821656 ########## src/main/java/org/apache/maven/report/projectinfo/dependencies/renderer/DependenciesRenderer.java: ########## @@ -607,25 +608,76 @@ private void renderSectionDependencyFileDetails() { justification[0] = Sink.JUSTIFY_RIGHT; justification[6] = Sink.JUSTIFY_RIGHT; - for (int i = -1; i < TotalCell.SCOPES_COUNT; i++) { - if (totaldeps.getTotal(i) > 0) { - tableRow(hasSealed, new String[] { - totaldeps.getTotalString(i), - totaldepsize.getTotalString(i), - totalentries.getTotalString(i), - totalclasses.getTotalString(i), - totalpackages.getTotalString(i), - (i < 0) ? javaVersionFormat.format(new Object[] {highestJavaVersion}) : "", - totalDebugInformation.getTotalString(i), - totalsealed.getTotalString(i) - }); + // calculate rowspan attr + int rowspan = computeRowspan(totaldeps); + + if (rowspan > 1) { + boolean insertRowspanAttr = false; + int column = 5; // Java Version's column + for (int i = -1; i < TotalCell.SCOPES_COUNT; i++) { + if (totaldeps.getTotal(i) > 0) { + boolean alreadyInsertedRowspanAttr = insertRowspanAttr && (0 < i && i < 4); + insertRowspanAttr = (0 <= i && i < 4); + justification[column] = (insertRowspanAttr && alreadyInsertedRowspanAttr) + ? justification[column + 1] + : Sink.JUSTIFY_CENTER; + tableRowWithRowspan( + hasSealed, insertRowspanAttr, alreadyInsertedRowspanAttr, column, rowspan, new String[] { + totaldeps.getTotalString(i), + totaldepsize.getTotalString(i), + totalentries.getTotalString(i), + totalclasses.getTotalString(i), + totalpackages.getTotalString(i), + formatMaxVersionForScope(i, highestTestJavaVersion, highestNonTestJavaVersion), + totalDebugInformation.getTotalString(i), + totalsealed.getTotalString(i) + }); + } + } + } else { + for (int i = -1; i < TotalCell.SCOPES_COUNT; i++) { + if (totaldeps.getTotal(i) > 0) { + tableRow(hasSealed, new String[] { + totaldeps.getTotalString(i), + totaldepsize.getTotalString(i), + totalentries.getTotalString(i), + totalclasses.getTotalString(i), + totalpackages.getTotalString(i), + formatMaxVersionForScope(i, highestTestJavaVersion, highestNonTestJavaVersion), + totalDebugInformation.getTotalString(i), + totalsealed.getTotalString(i) + }); + } } } endTable(); endSection(); } + private int computeRowspan(TotalCell totaldeps) { + int rowspan = 0; + for (int i = 0; i < TotalCell.SCOPES_COUNT - 1; i++) { + if (totaldeps.getTotal(i) > 0) { + rowspan++; + } + } + return rowspan; + } + + private String formatMaxVersionForScope( Review Comment: Let's make this `formatMaxJavaVersionForScope` > Dependency file details section: segregate Java version column into execution > and test versions > ----------------------------------------------------------------------------------------------- > > Key: MPIR-431 > URL: https://issues.apache.org/jira/browse/MPIR-431 > Project: Maven Project Info Reports Plugin > Issue Type: Improvement > Components: dependencies > Reporter: Gabriel Belingueres > Assignee: Michael Osipov > Priority: Minor > > In order to easily spot which is the minimum java version for execution > versus the minimum java version for building the project, divide the "Java > version" column into two columns: > Java version: max version between dependencies with scopes: compile, runtime, > provided, system. > Test Java version: max java version between all the test scoped dependencies. -- This message was sent by Atlassian Jira (v8.20.10#820010)