Use link title to show branch names
diff --git a/src/main/java/org/apache/maven/dist/tools/branches/ListBranchesMojo.java b/src/main/java/org/apache/maven/dist/tools/branches/ListBranchesMojo.java
index 5659a52..847946c 100644
--- a/src/main/java/org/apache/maven/dist/tools/branches/ListBranchesMojo.java
+++ b/src/main/java/org/apache/maven/dist/tools/branches/ListBranchesMojo.java
@@ -33,6 +33,8 @@
import org.apache.maven.dist.tools.JsoupRetry;
import org.apache.maven.doxia.sink.Sink;
+import org.apache.maven.doxia.sink.SinkEventAttributes;
+import org.apache.maven.doxia.sink.impl.SinkEventAttributeSet;
import org.apache.maven.plugins.annotations.Mojo;
import org.apache.maven.reporting.AbstractMavenReport;
import org.apache.maven.reporting.MavenReportException;
@@ -217,12 +219,12 @@
Result result = new Result( repository, repositoryJobUrl );
int masterBranchesGit = 0;
int masterBranchesJenkins = 0;
- int jiraBranchesGit = 0;
- int jiraBranchesJenkins = 0;
- int dependabotBranchesGit = 0;
- int dependabotBranchesJenkins = 0;
- int restGit = 0;
- int restJenkins = 0;
+ Collection<String> jiraBranchesGit = new ArrayList<>();
+ Collection<String> jiraBranchesJenkins = new ArrayList<>();
+ Collection<String> dependabotBranchesGit = new ArrayList<>();
+ Collection<String> dependabotBranchesJenkins = new ArrayList<>();
+ Collection<String> restGit = new ArrayList<>();
+ Collection<String> restJenkins = new ArrayList<>();
for ( Element tableRow : headsTable.select( "tr" ) )
{
@@ -240,26 +242,26 @@
else if ( JIRAPROJECTS.containsKey( repository )
&& name.toUpperCase().startsWith( JIRAPROJECTS.get( repository ) + '-' ) )
{
- jiraBranchesGit++;
+ jiraBranchesGit.add( name );
if ( jenkinsBranchesDoc.getElementById( URLEncoder.encode( "job_" + name, "UTF-8" ) ) != null )
{
- jiraBranchesJenkins++;
+ jiraBranchesJenkins.add( name );
}
}
else if ( name.startsWith( "dependabot/" ) )
{
- dependabotBranchesGit++;
+ dependabotBranchesGit.add( name );
if ( jenkinsBranchesDoc.getElementById( URLEncoder.encode( "job_" + name, "UTF-8" ) ) != null )
{
- dependabotBranchesJenkins++;
+ dependabotBranchesJenkins.add( name );
}
}
else
{
- restGit++;
+ restGit.add( name );
if ( jenkinsBranchesDoc.getElementById( URLEncoder.encode( "job_" + name, "UTF-8" ) ) != null )
{
- restJenkins++;
+ restJenkins.add( name );
}
}
}
@@ -302,15 +304,12 @@
sink.table();
sink.tableRow();
sink.tableHeaderCell();
- sink.text( "GitHub" );
+ sink.text( "Repository" );
sink.tableHeaderCell_();
sink.tableHeaderCell();
sink.text( "JIRA" );
sink.tableHeaderCell_();
sink.tableHeaderCell();
- sink.text( "Jenkins job" );
- sink.tableHeaderCell_();
- sink.tableHeaderCell();
sink.text( "master" );
sink.tableHeaderCell_();
sink.tableHeaderCell();
@@ -335,9 +334,7 @@
// GitHub
sink.tableCell();
- sink.link( "https://github.com/apache/" + r.getRepositoryName() );
- sink.rawText( r.getRepositoryName() );
- sink.link_();
+ sink.text( r.getRepositoryName() );
sink.tableCell_();
// Jira
@@ -351,13 +348,6 @@
}
sink.tableCell_();
- // Jenkins job
- sink.tableCell();
- sink.link( r.getBuildUrl() );
- sink.rawText( r.getRepositoryName() );
- sink.link_();
- sink.tableCell_();
-
// master
sink.tableCell();
sink.text( r.getMasterBranchesJenkins() + " / " + r.getMasterBranchesGit() );
@@ -365,43 +355,92 @@
//jira branches
sink.tableCell();
- if ( r.getJiraBranchesGit() == 0 )
+ if ( r.getJiraBranchesGit().isEmpty() )
{
sink.text( "-" );
}
else
{
+ SinkEventAttributes jenkinsLinkAttributes = new SinkEventAttributeSet();
+ jenkinsLinkAttributes.addAttribute( SinkEventAttributes.TITLE,
+ r.getJiraBranchesJenkins().stream().collect( Collectors.joining( "\n" ) ) );
+
+ SinkEventAttributes gitLinkAttributes = new SinkEventAttributeSet();
+ r.getJiraBranchesGit().stream()
+ .filter( n -> !r.getJiraBranchesJenkins().contains( n ) )
+ .reduce( ( n1, n2 ) -> n1 + "\n" + n2 )
+ .ifPresent( t -> gitLinkAttributes.addAttribute( SinkEventAttributes.TITLE,
+ "-- non-Jenkins branches --\n" + t ) );
+
sink.bold();
- sink.text( r.getJiraBranchesJenkins() + " / " + r.getJiraBranchesGit() );
+ sink.link( r.getBuildUrl(), jenkinsLinkAttributes );
+ sink.rawText( String.valueOf( r.getJiraBranchesJenkins().size() ) );
+ sink.link_();
+ sink.text( " / " );
+ sink.link( r.getBuildUrl(), gitLinkAttributes );
+ sink.rawText( String.valueOf( r.getJiraBranchesGit().size() ) );
+ sink.link_();
sink.bold_();
}
sink.tableCell_();
// dependabot branches
sink.tableCell();
- if ( r.getDependabotBranchesGit() == 0 )
+ if ( r.getDependabotBranchesGit().isEmpty() )
{
sink.text( "-" );
}
else
{
+ SinkEventAttributes jenkinsLinkAttributes = new SinkEventAttributeSet();
+ jenkinsLinkAttributes.addAttribute( SinkEventAttributes.TITLE,
+ r.getDependabotBranchesJenkins().stream().collect( Collectors.joining( "\n" ) ) );
+
+ SinkEventAttributes gitLinkAttributes = new SinkEventAttributeSet();
+ r.getDependabotBranchesGit().stream()
+ .filter( n -> !r.getDependabotBranchesJenkins().contains( n ) )
+ .reduce( ( n1, n2 ) -> n1 + "\n" + n2 )
+ .ifPresent( t -> gitLinkAttributes.addAttribute( SinkEventAttributes.TITLE,
+ "-- non-Jenkins branches --\n" + t ) );
+
sink.bold();
- sink.text( r.getDependabotBranchesJenkins() + " / " + r.getDependabotBranchesGit() );
- sink.bold_();
+ sink.link( r.getBuildUrl(), jenkinsLinkAttributes );
+ sink.rawText( String.valueOf( r.getDependabotBranchesJenkins().size() ) );
+ sink.link_();
+ sink.text( " / " );
+ sink.link( r.getBuildUrl(), gitLinkAttributes );
+ sink.rawText( String.valueOf( r.getDependabotBranchesGit().size() ) );
+ sink.link_();
}
sink.tableCell_();
// rest
sink.tableCell();
- if ( r.getRestGit() == 0 )
+ if ( r.getRestGit().isEmpty() )
{
sink.text( "-" );
}
else
{
+ SinkEventAttributes jenkinsLinkAttributes = new SinkEventAttributeSet();
+ jenkinsLinkAttributes.addAttribute( SinkEventAttributes.TITLE,
+ r.getRestJenkins().stream().collect( Collectors.joining( "\n" ) ) );
+
+ SinkEventAttributes gitLinkAttributes = new SinkEventAttributeSet();
+ r.getRestGit().stream()
+ .filter( n -> !r.getRestJenkins().contains( n ) )
+ .reduce( ( n1, n2 ) -> n1 + "\n" + n2 )
+ .ifPresent( t -> gitLinkAttributes.addAttribute( SinkEventAttributes.TITLE,
+ "-- non-Jenkins branches --\n" + t ) );
+
sink.bold();
- sink.text( r.getRestJenkins() + " / " + r.getRestGit() );
- sink.bold_();
+ sink.link( r.getBuildUrl(), jenkinsLinkAttributes );
+ sink.rawText( String.valueOf( r.getRestJenkins().size() ) );
+ sink.link_();
+ sink.text( " / " );
+ sink.link( r.getBuildUrl(), gitLinkAttributes );
+ sink.rawText( String.valueOf( r.getRestGit().size() ) );
+ sink.link_();
}
sink.tableCell_();
diff --git a/src/main/java/org/apache/maven/dist/tools/branches/Result.java b/src/main/java/org/apache/maven/dist/tools/branches/Result.java
index c6d7e68..b8f722d 100644
--- a/src/main/java/org/apache/maven/dist/tools/branches/Result.java
+++ b/src/main/java/org/apache/maven/dist/tools/branches/Result.java
@@ -19,6 +19,8 @@
* under the License.
*/
+import java.util.Collection;
+
/**
* Represent build result of a Jenkins job for a Git master branch.
*
@@ -33,14 +35,14 @@
private int masterBranchesGit;
private int masterBranchesJenkins;
- private int jiraBranchesGit;
- private int jiraBranchesJenkins;
+ private Collection<String> jiraBranchesGit;
+ private Collection<String> jiraBranchesJenkins;
- private int dependabotBranchesGit;
- private int dependabotBranchesJenkins;
+ private Collection<String> dependabotBranchesGit;
+ private Collection<String> dependabotBranchesJenkins;
- private int restGit;
- private int restJenkins;
+ private Collection<String> restGit;
+ private Collection<String> restJenkins;
public Result( String repositoryName, String buildUrl )
{
@@ -68,62 +70,62 @@
this.masterBranchesJenkins = masterBranchesJenkins;
}
- public int getJiraBranchesGit()
+ public Collection<String> getJiraBranchesGit()
{
return jiraBranchesGit;
}
- public void setJiraBranchesGit( int jiraBranches )
+ public void setJiraBranchesGit( Collection<String> jiraBranches )
{
this.jiraBranchesGit = jiraBranches;
}
- public int getJiraBranchesJenkins()
+ public Collection<String> getJiraBranchesJenkins()
{
return jiraBranchesJenkins;
}
- public void setJiraBranchesJenkins( int jiraBranchesJenkins )
+ public void setJiraBranchesJenkins( Collection<String> jiraBranchesJenkins )
{
this.jiraBranchesJenkins = jiraBranchesJenkins;
}
- public int getDependabotBranchesGit()
+ public Collection<String> getDependabotBranchesGit()
{
return dependabotBranchesGit;
}
- public void setDependabotBranchesGit( int dependabotBranches )
+ public void setDependabotBranchesGit( Collection<String> dependabotBranches )
{
this.dependabotBranchesGit = dependabotBranches;
}
- public int getDependabotBranchesJenkins()
+ public Collection<String> getDependabotBranchesJenkins()
{
return dependabotBranchesJenkins;
}
- public void setDependabotBranchesJenkins( int dependabotBranchesJenkins )
+ public void setDependabotBranchesJenkins( Collection<String> dependabotBranchesJenkins )
{
this.dependabotBranchesJenkins = dependabotBranchesJenkins;
}
- public int getRestGit()
+ public Collection<String> getRestGit()
{
return restGit;
}
- public void setRestGit( int rest )
+ public void setRestGit( Collection<String> rest )
{
this.restGit = rest;
}
- public int getRestJenkins()
+ public Collection<String> getRestJenkins()
{
return restJenkins;
}
- public void setRestJenkins( int restJenkins )
+ public void setRestJenkins( Collection<String> restJenkins )
{
this.restJenkins = restJenkins;
}
@@ -140,12 +142,13 @@
public final int getTotalGit()
{
- return masterBranchesGit + jiraBranchesGit + dependabotBranchesGit + restGit;
+ return masterBranchesGit + jiraBranchesGit.size() + dependabotBranchesGit.size() + restGit.size();
}
public final int getTotalJenkins()
{
- return masterBranchesJenkins + jiraBranchesJenkins + dependabotBranchesJenkins + restJenkins;
+ return masterBranchesJenkins + jiraBranchesJenkins.size() + dependabotBranchesJenkins.size()
+ + restJenkins.size();
}
}