You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by mi...@apache.org on 2023/02/11 11:40:10 UTC

[maven-reporting-impl] branch master updated: [MSHARED-1186] Upgrade Parent to 39

This is an automated email from the ASF dual-hosted git repository.

michaelo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-reporting-impl.git


The following commit(s) were added to refs/heads/master by this push:
     new 166edf2  [MSHARED-1186] Upgrade Parent to 39
166edf2 is described below

commit 166edf2fbcca79fee8382dfda94db7aef6d7d430
Author: Michael Osipov <mi...@apache.org>
AuthorDate: Sat Feb 11 12:39:43 2023 +0100

    [MSHARED-1186] Upgrade Parent to 39
---
 pom.xml                                            |   6 +-
 .../maven/reporting/AbstractMavenReport.java       | 231 ++++++-------
 .../reporting/AbstractMavenReportRenderer.java     | 372 +++++++++------------
 .../reporting/AbstractMavenReportRendererTest.java | 113 +++----
 4 files changed, 305 insertions(+), 417 deletions(-)

diff --git a/pom.xml b/pom.xml
index 7348adf..3ccc898 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,4 +1,4 @@
-<?xml version='1.0' encoding='UTF-8'?>
+<?xml version="1.0" encoding="UTF-8"?>
 <!--
   Licensed to the Apache Software Foundation (ASF) under one
   or more contributor license agreements.  See the NOTICE file
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.maven.shared</groupId>
     <artifactId>maven-shared-components</artifactId>
-    <version>36</version>
+    <version>39</version>
     <relativePath />
   </parent>
 
@@ -49,8 +49,8 @@
   <scm>
     <connection>scm:git:https://gitbox.apache.org/repos/asf/maven-reporting-impl.git</connection>
     <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/maven-reporting-impl.git</developerConnection>
-    <url>https://github.com/apache/maven-reporting-impl/tree/${project.scm.tag}</url>
     <tag>HEAD</tag>
+    <url>https://github.com/apache/maven-reporting-impl/tree/${project.scm.tag}</url>
   </scm>
   <issueManagement>
     <system>jira</system>
diff --git a/src/main/java/org/apache/maven/reporting/AbstractMavenReport.java b/src/main/java/org/apache/maven/reporting/AbstractMavenReport.java
index d20add7..c2acae8 100644
--- a/src/main/java/org/apache/maven/reporting/AbstractMavenReport.java
+++ b/src/main/java/org/apache/maven/reporting/AbstractMavenReport.java
@@ -1,5 +1,3 @@
-package org.apache.maven.reporting;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -9,7 +7,7 @@ package org.apache.maven.reporting;
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
  *
- *  http://www.apache.org/licenses/LICENSE-2.0
+ *   http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
@@ -18,10 +16,22 @@ package org.apache.maven.reporting;
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.maven.reporting;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStreamWriter;
+import java.io.Writer;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
 
+import org.apache.maven.archiver.MavenArchiver;
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.archiver.MavenArchiver;
 import org.apache.maven.doxia.sink.Sink;
 import org.apache.maven.doxia.sink.SinkFactory;
 import org.apache.maven.doxia.site.decoration.DecorationModel;
@@ -42,17 +52,6 @@ import org.codehaus.plexus.util.ReaderFactory;
 
 import static org.apache.maven.shared.utils.logging.MessageUtils.buffer;
 
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.OutputStreamWriter;
-import java.io.Writer;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-
 /**
  * The basis for a Maven report which can be generated both as part of a site generation or
  * as a direct standalone goal invocation.
@@ -69,58 +68,55 @@ import java.util.Map;
  *  from maven-reporting-api
  * @see #executeReport(Locale) <code>abstract executeReport( Locale )</code>
  */
-public abstract class AbstractMavenReport
-    extends AbstractMojo
-    implements MavenMultiPageReport
-{
+public abstract class AbstractMavenReport extends AbstractMojo implements MavenMultiPageReport {
     /**
      * The output directory for the report. Note that this parameter is only evaluated if the goal is run directly from
      * the command line. If the goal is run indirectly as part of a site generation, the output directory configured in
      * the Maven Site Plugin is used instead.
      */
-    @Parameter( defaultValue = "${project.reporting.outputDirectory}", readonly = true, required = true )
+    @Parameter(defaultValue = "${project.reporting.outputDirectory}", readonly = true, required = true)
     protected File outputDirectory;
 
     /**
      * The Maven Project.
      */
-    @Parameter( defaultValue = "${project}", readonly = true, required = true )
+    @Parameter(defaultValue = "${project}", readonly = true, required = true)
     protected MavenProject project;
 
     /**
      * The reactor projects.
      */
-    @Parameter( defaultValue = "${reactorProjects}", required = true, readonly = true )
+    @Parameter(defaultValue = "${reactorProjects}", required = true, readonly = true)
     protected List<MavenProject> reactorProjects;
 
     /**
      * Specifies the input encoding.
      */
-    @Parameter( property = "encoding", defaultValue = "${project.build.sourceEncoding}", readonly = true )
+    @Parameter(property = "encoding", defaultValue = "${project.build.sourceEncoding}", readonly = true)
     private String inputEncoding;
 
     /**
      * Specifies the output encoding.
      */
-    @Parameter( property = "outputEncoding", defaultValue = "${project.reporting.outputEncoding}", readonly = true )
+    @Parameter(property = "outputEncoding", defaultValue = "${project.reporting.outputEncoding}", readonly = true)
     private String outputEncoding;
 
     /**
      * The local repository.
      */
-    @Parameter( defaultValue = "${localRepository}", readonly = true, required = true )
+    @Parameter(defaultValue = "${localRepository}", readonly = true, required = true)
     protected ArtifactRepository localRepository;
 
     /**
      * Remote repositories used for the project.
      */
-    @Parameter( defaultValue = "${project.remoteArtifactRepositories}", readonly = true, required = true )
+    @Parameter(defaultValue = "${project.remoteArtifactRepositories}", readonly = true, required = true)
     protected List<ArtifactRepository> remoteRepositories;
 
     /**
      * Directory containing the <code>site.xml</code> file.
      */
-    @Parameter( defaultValue = "${basedir}/src/site" )
+    @Parameter(defaultValue = "${basedir}/src/site")
     protected File siteDirectory;
 
     /**
@@ -130,8 +126,7 @@ public abstract class AbstractMavenReport
      *
      * @see SiteTool#getSiteLocales(String)
      */
-
-    @Parameter( defaultValue = "default" )
+    @Parameter(defaultValue = "default")
     protected String locale;
 
     /**
@@ -162,106 +157,91 @@ public abstract class AbstractMavenReport
      * @see org.apache.maven.plugin.Mojo#execute()
      */
     @Override
-    public void execute()
-        throws MojoExecutionException
-    {
-        if ( !canGenerateReport() )
-        {
+    public void execute() throws MojoExecutionException {
+        if (!canGenerateReport()) {
             return;
         }
 
-        File outputDirectory = new File( getOutputDirectory() );
+        File outputDirectory = new File(getOutputDirectory());
 
         String filename = getOutputName() + ".html";
 
         Locale locale = getLocale();
 
-        try
-        {
-            SiteRenderingContext siteContext = createSiteRenderingContext( locale );
+        try {
+            SiteRenderingContext siteContext = createSiteRenderingContext(locale);
 
             // copy resources
-            getSiteRenderer().copyResources( siteContext, outputDirectory );
+            getSiteRenderer().copyResources(siteContext, outputDirectory);
 
             // TODO Replace null with real value
-            RenderingContext docRenderingContext = new RenderingContext( outputDirectory, filename, null );
+            RenderingContext docRenderingContext = new RenderingContext(outputDirectory, filename, null);
 
-            SiteRendererSink sink = new SiteRendererSink( docRenderingContext );
+            SiteRendererSink sink = new SiteRendererSink(docRenderingContext);
 
-            generate( sink, null, locale );
+            generate(sink, null, locale);
 
-            if ( !isExternalReport() ) // MSHARED-204: only render Doxia sink if not an external report
+            if (!isExternalReport()) // MSHARED-204: only render Doxia sink if not an external report
             {
                 outputDirectory.mkdirs();
 
-                try ( Writer writer =
-                      new OutputStreamWriter( new FileOutputStream( new File( outputDirectory, filename ) ),
-                                              getOutputEncoding() ) )
-                {
+                try (Writer writer = new OutputStreamWriter(
+                        new FileOutputStream(new File(outputDirectory, filename)), getOutputEncoding())) {
                     // render report
-                    getSiteRenderer().mergeDocumentIntoSite( writer, sink, siteContext );
+                    getSiteRenderer().mergeDocumentIntoSite(writer, sink, siteContext);
                 }
             }
 
             // copy generated resources also
-            getSiteRenderer().copyResources( siteContext, outputDirectory );
-        }
-        catch ( RendererException | IOException | MavenReportException | SiteToolException e )
-        {
+            getSiteRenderer().copyResources(siteContext, outputDirectory);
+        } catch (RendererException | IOException | MavenReportException | SiteToolException e) {
             throw new MojoExecutionException(
-                "An error has occurred in " + getName( Locale.ENGLISH ) + " report generation.", e );
+                    "An error has occurred in " + getName(Locale.ENGLISH) + " report generation.", e);
         }
     }
 
-    private SiteRenderingContext createSiteRenderingContext( Locale locale )
-        throws MavenReportException, IOException, SiteToolException
-    {
+    private SiteRenderingContext createSiteRenderingContext(Locale locale)
+            throws MavenReportException, IOException, SiteToolException {
         DecorationModel decorationModel = siteTool.getDecorationModel(
-            siteDirectory, locale, project, reactorProjects, localRepository, remoteRepositories );
+                siteDirectory, locale, project, reactorProjects, localRepository, remoteRepositories);
 
         Map<String, Object> templateProperties = new HashMap<>();
         // We tell the skin that we are rendering in standalone mode
-        templateProperties.put( "standalone", Boolean.TRUE );
-        templateProperties.put( "project", getProject() );
-        templateProperties.put( "inputEncoding", getInputEncoding() );
-        templateProperties.put( "outputEncoding", getOutputEncoding() );
+        templateProperties.put("standalone", Boolean.TRUE);
+        templateProperties.put("project", getProject());
+        templateProperties.put("inputEncoding", getInputEncoding());
+        templateProperties.put("outputEncoding", getOutputEncoding());
         // Put any of the properties in directly into the Velocity context
-        for ( Map.Entry<Object, Object> entry : getProject().getProperties().entrySet() )
-        {
-            templateProperties.put( (String) entry.getKey(), entry.getValue() );
+        for (Map.Entry<Object, Object> entry : getProject().getProperties().entrySet()) {
+            templateProperties.put((String) entry.getKey(), entry.getValue());
         }
 
         SiteRenderingContext context;
-        try
-        {
+        try {
             Artifact skinArtifact =
-                siteTool.getSkinArtifactFromRepository( localRepository, remoteRepositories, decorationModel );
-
-            getLog().info( buffer().a( "Rendering content with " ).strong( skinArtifact.getId()
-                + " skin" ).a( '.' ).toString() );
-
-            context = siteRenderer.createContextForSkin( skinArtifact, templateProperties, decorationModel,
-                                                         project.getName(), locale );
-        }
-        catch ( SiteToolException e )
-        {
-            throw new MavenReportException( "Failed to retrieve skin artifact", e );
-        }
-        catch ( RendererException e )
-        {
-            throw new MavenReportException( "Failed to create context for skin", e );
+                    siteTool.getSkinArtifactFromRepository(localRepository, remoteRepositories, decorationModel);
+
+            getLog().info(buffer().a("Rendering content with ")
+                    .strong(skinArtifact.getId() + " skin")
+                    .a('.')
+                    .toString());
+
+            context = siteRenderer.createContextForSkin(
+                    skinArtifact, templateProperties, decorationModel, project.getName(), locale);
+        } catch (SiteToolException e) {
+            throw new MavenReportException("Failed to retrieve skin artifact", e);
+        } catch (RendererException e) {
+            throw new MavenReportException("Failed to create context for skin", e);
         }
 
         // Add publish date
-        String outputTimestamp = getProject().getProperties().getProperty( "project.build.outputTimestamp" );
-        MavenArchiver.parseBuildOutputTimestamp( outputTimestamp ).ifPresent( v ->
-            {
-                context.setPublishDate( Date.from( v ) );
-            }
-        );
+        String outputTimestamp = getProject().getProperties().getProperty("project.build.outputTimestamp");
+        MavenArchiver.parseBuildOutputTimestamp(outputTimestamp).ifPresent(v -> {
+            context.setPublishDate(Date.from(v));
+        });
 
         // Generate static site
-        context.setRootDirectory( project.getBasedir() );
+        context.setRootDirectory(project.getBasedir());
 
         return context;
     }
@@ -276,10 +256,8 @@ public abstract class AbstractMavenReport
      */
     @Deprecated
     @Override
-    public void generate( Sink sink, Locale locale )
-        throws MavenReportException
-    {
-        generate( sink, null, locale );
+    public void generate(Sink sink, Locale locale) throws MavenReportException {
+        generate(sink, null, locale);
     }
 
     /**
@@ -291,13 +269,10 @@ public abstract class AbstractMavenReport
      * @throws MavenReportException
      */
     @Override
-    public void generate( Sink sink, SinkFactory sinkFactory, Locale locale )
-        throws MavenReportException
-    {
-        if ( !canGenerateReport() )
-        {
-            getLog().info( "This report cannot be generated as part of the current build. "
-                           + "The report name should be referenced in this line of output." );
+    public void generate(Sink sink, SinkFactory sinkFactory, Locale locale) throws MavenReportException {
+        if (!canGenerateReport()) {
+            getLog().info("This report cannot be generated as part of the current build. "
+                    + "The report name should be referenced in this line of output.");
             return;
         }
 
@@ -305,7 +280,7 @@ public abstract class AbstractMavenReport
 
         this.sinkFactory = sinkFactory;
 
-        executeReport( locale );
+        executeReport(locale);
 
         closeReport();
     }
@@ -314,41 +289,34 @@ public abstract class AbstractMavenReport
      * @return CATEGORY_PROJECT_REPORTS
      */
     @Override
-    public String getCategoryName()
-    {
+    public String getCategoryName() {
         return CATEGORY_PROJECT_REPORTS;
     }
 
     @Override
-    public File getReportOutputDirectory()
-    {
-        if ( reportOutputDirectory == null )
-        {
-            reportOutputDirectory = new File( getOutputDirectory() );
+    public File getReportOutputDirectory() {
+        if (reportOutputDirectory == null) {
+            reportOutputDirectory = new File(getOutputDirectory());
         }
 
         return reportOutputDirectory;
     }
 
     @Override
-    public void setReportOutputDirectory( File reportOutputDirectory )
-    {
+    public void setReportOutputDirectory(File reportOutputDirectory) {
         this.reportOutputDirectory = reportOutputDirectory;
         this.outputDirectory = reportOutputDirectory;
     }
 
-    protected String getOutputDirectory()
-    {
+    protected String getOutputDirectory() {
         return outputDirectory.getAbsolutePath();
     }
 
-    protected MavenProject getProject()
-    {
+    protected MavenProject getProject() {
         return project;
     }
 
-    protected Renderer getSiteRenderer()
-    {
+    protected Renderer getSiteRenderer() {
         return siteRenderer;
     }
 
@@ -357,9 +325,8 @@ public abstract class AbstractMavenReport
      *
      * @return The input files encoding, never <code>null</code>.
      */
-    protected String getInputEncoding()
-    {
-        return ( inputEncoding == null ) ? ReaderFactory.FILE_ENCODING : inputEncoding;
+    protected String getInputEncoding() {
+        return (inputEncoding == null) ? ReaderFactory.FILE_ENCODING : inputEncoding;
     }
 
     /**
@@ -367,9 +334,8 @@ public abstract class AbstractMavenReport
      *
      * @return The effective reporting output file encoding, never <code>null</code>.
      */
-    protected String getOutputEncoding()
-    {
-        return ( outputEncoding == null ) ? WriterFactory.UTF_8 : outputEncoding;
+    protected String getOutputEncoding() {
+        return (outputEncoding == null) ? WriterFactory.UTF_8 : outputEncoding;
     }
 
     /**
@@ -377,32 +343,28 @@ public abstract class AbstractMavenReport
      *
      * @return the locale for this standalone report
      */
-    protected Locale getLocale()
-    {
-        return siteTool.getSiteLocales( locale ).get( 0 );
+    protected Locale getLocale() {
+        return siteTool.getSiteLocales(locale).get(0);
     }
 
     /**
      * Actions when closing the report.
      */
-    protected void closeReport()
-    {
+    protected void closeReport() {
         getSink().close();
     }
 
     /**
      * @return the sink used
      */
-    public Sink getSink()
-    {
+    public Sink getSink() {
         return sink;
     }
 
     /**
      * @return the sink factory used
      */
-    public SinkFactory getSinkFactory()
-    {
+    public SinkFactory getSinkFactory() {
         return sinkFactory;
     }
 
@@ -411,14 +373,12 @@ public abstract class AbstractMavenReport
      * @return {@code false} by default.
      */
     @Override
-    public boolean isExternalReport()
-    {
+    public boolean isExternalReport() {
         return false;
     }
 
     @Override
-    public boolean canGenerateReport()
-    {
+    public boolean canGenerateReport() {
         return true;
     }
 
@@ -428,6 +388,5 @@ public abstract class AbstractMavenReport
      * @param locale the wanted locale to return the report's description, could be <code>null</code>.
      * @throws MavenReportException if any
      */
-    protected abstract void executeReport( Locale locale )
-        throws MavenReportException;
+    protected abstract void executeReport(Locale locale) throws MavenReportException;
 }
diff --git a/src/main/java/org/apache/maven/reporting/AbstractMavenReportRenderer.java b/src/main/java/org/apache/maven/reporting/AbstractMavenReportRenderer.java
index 2daf830..0f1a74e 100644
--- a/src/main/java/org/apache/maven/reporting/AbstractMavenReportRenderer.java
+++ b/src/main/java/org/apache/maven/reporting/AbstractMavenReportRenderer.java
@@ -1,7 +1,23 @@
-package org.apache.maven.reporting;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.maven.reporting;
+/*
  * or more contributor license agreements.  See the NOTICE file
  * distributed with this work for additional information
  * regarding copyright ownership.  The ASF licenses this file
@@ -19,11 +35,6 @@ package org.apache.maven.reporting;
  * under the License.
  */
 
-import org.apache.maven.doxia.markup.Markup;
-import org.apache.maven.doxia.sink.Sink;
-import org.apache.maven.doxia.sink.impl.SinkEventAttributeSet;
-import org.apache.maven.shared.utils.StringUtils;
-
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Iterator;
@@ -31,6 +42,11 @@ import java.util.List;
 import java.util.Map;
 import java.util.Properties;
 
+import org.apache.maven.doxia.markup.Markup;
+import org.apache.maven.doxia.sink.Sink;
+import org.apache.maven.doxia.sink.impl.SinkEventAttributeSet;
+import org.apache.maven.shared.utils.StringUtils;
+
 /**
  * <p>An abstract class to manage report generation, with many helper methods to ease the job: you just need to
  * implement getTitle() and renderBody().</p>
@@ -46,9 +62,7 @@ import java.util.Properties;
  * @see #getTitle()
  * @see #renderBody()
  */
-public abstract class AbstractMavenReportRenderer
-    implements MavenReportRenderer
-{
+public abstract class AbstractMavenReportRenderer implements MavenReportRenderer {
     /** The current sink to use */
     protected Sink sink;
 
@@ -60,19 +74,17 @@ public abstract class AbstractMavenReportRenderer
      *
      * @param sink the sink to use.
      */
-    public AbstractMavenReportRenderer( Sink sink )
-    {
+    public AbstractMavenReportRenderer(Sink sink) {
         this.sink = sink;
     }
 
     /** {@inheritDoc} */
     @Override
-    public void render()
-    {
+    public void render() {
         sink.head();
 
         sink.title();
-        text( getTitle() );
+        text(getTitle());
         sink.title_();
 
         sink.head_();
@@ -100,9 +112,8 @@ public abstract class AbstractMavenReportRenderer
      * @see Sink#sectionTitle(int, org.apache.maven.doxia.sink.SinkEventAttributes)
      * @see Sink#sectionTitle_(int)
      */
-    protected void startSection( String name )
-    {
-        startSection( name, name );
+    protected void startSection(String name) {
+        startSection(name, name);
     }
 
     /**
@@ -115,15 +126,14 @@ public abstract class AbstractMavenReportRenderer
      * @see Sink#sectionTitle(int, org.apache.maven.doxia.sink.SinkEventAttributes)
      * @see Sink#sectionTitle_(int)
      */
-    protected void startSection( String name, String anchor )
-    {
+    protected void startSection(String name, String anchor) {
         section++;
-        sink.section( section, null );
-        sink.anchor( anchor );
+        sink.section(section, null);
+        sink.anchor(anchor);
         sink.anchor_();
-        sink.sectionTitle( section, null );
-        text( name );
-        sink.sectionTitle_( section );
+        sink.sectionTitle(section, null);
+        text(name);
+        sink.sectionTitle_(section);
     }
 
     /**
@@ -132,14 +142,12 @@ public abstract class AbstractMavenReportRenderer
      * @see Sink#section_(int)
      * @throws IllegalStateException if too many closing sections.
      */
-    protected void endSection()
-    {
-        sink.section_( section );
+    protected void endSection() {
+        sink.section_(section);
         section--;
 
-        if ( section < 0 )
-        {
-            throw new IllegalStateException( "Too many closing sections" );
+        if (section < 0) {
+            throw new IllegalStateException("Too many closing sections");
         }
     }
 
@@ -152,9 +160,8 @@ public abstract class AbstractMavenReportRenderer
      *
      * @see Sink#table()
      */
-    protected void startTable()
-    {
-        startTable( null, false );
+    protected void startTable() {
+        startTable(null, false);
     }
 
     /**
@@ -167,10 +174,9 @@ public abstract class AbstractMavenReportRenderer
      * @see Sink#tableRows(int[],boolean)
      * @since 2.1
      */
-    protected void startTable( int[] justification, boolean grid )
-    {
+    protected void startTable(int[] justification, boolean grid) {
         sink.table();
-        sink.tableRows( justification, grid );
+        sink.tableRows(justification, grid);
     }
 
     /**
@@ -178,8 +184,7 @@ public abstract class AbstractMavenReportRenderer
      *
      * @see Sink#table_()
      */
-    protected void endTable()
-    {
+    protected void endTable() {
         sink.tableRows_();
         sink.table_();
     }
@@ -192,11 +197,10 @@ public abstract class AbstractMavenReportRenderer
      * @see Sink#tableHeaderCell()
      * @see Sink#tableHeaderCell_()
      */
-    protected void tableHeaderCell( String text )
-    {
+    protected void tableHeaderCell(String text) {
         sink.tableHeaderCell();
 
-        text( text );
+        text(text);
 
         sink.tableHeaderCell_();
     }
@@ -209,9 +213,8 @@ public abstract class AbstractMavenReportRenderer
      * @see #linkPatternedText(String)
      * @see #tableCell(String)
      */
-    protected void tableCell( String text )
-    {
-        tableCell( text, false );
+    protected void tableCell(String text) {
+        tableCell(text, false);
     }
 
     /**
@@ -226,17 +229,13 @@ public abstract class AbstractMavenReportRenderer
      * @see Sink#tableCell_()
      * @see Sink#rawText(String)
      */
-    protected void tableCell( String text, boolean asHtml )
-    {
+    protected void tableCell(String text, boolean asHtml) {
         sink.tableCell();
 
-        if ( asHtml )
-        {
-            sink.rawText( text );
-        }
-        else
-        {
-            linkPatternedText( text );
+        if (asHtml) {
+            sink.rawText(text);
+        } else {
+            linkPatternedText(text);
         }
 
         sink.tableCell_();
@@ -251,15 +250,12 @@ public abstract class AbstractMavenReportRenderer
      * @see Sink#tableRow()
      * @see Sink#tableRow_()
      */
-    protected void tableRow( String[] content )
-    {
+    protected void tableRow(String[] content) {
         sink.tableRow();
 
-        if ( content != null )
-        {
-            for ( int i = 0; i < content.length; i++ )
-            {
-                tableCell( content[i] );
+        if (content != null) {
+            for (int i = 0; i < content.length; i++) {
+                tableCell(content[i]);
             }
         }
 
@@ -274,15 +270,12 @@ public abstract class AbstractMavenReportRenderer
      * @see Sink#tableRow()
      * @see Sink#tableRow_()
      */
-    protected void tableHeader( String[] content )
-    {
+    protected void tableHeader(String[] content) {
         sink.tableRow();
 
-        if ( content != null )
-        {
-            for ( int i = 0; i < content.length; i++ )
-            {
-                tableHeaderCell( content[i] );
+        if (content != null) {
+            for (int i = 0; i < content.length; i++) {
+                tableHeaderCell(content[i]);
             }
         }
 
@@ -297,11 +290,10 @@ public abstract class AbstractMavenReportRenderer
      * @see Sink#tableCaption()
      * @see Sink#tableCaption_()
      */
-    protected void tableCaption( String caption )
-    {
+    protected void tableCaption(String caption) {
         sink.tableCaption();
 
-        text( caption );
+        text(caption);
 
         sink.tableCaption_();
     }
@@ -318,11 +310,10 @@ public abstract class AbstractMavenReportRenderer
      * @see Sink#paragraph()
      * @see Sink#paragraph_()
      */
-    protected void paragraph( String paragraph )
-    {
+    protected void paragraph(String paragraph) {
         sink.paragraph();
 
-        text( paragraph );
+        text(paragraph);
 
         sink.paragraph_();
     }
@@ -336,11 +327,10 @@ public abstract class AbstractMavenReportRenderer
      * @see Sink#link(String)
      * @see Sink#link_()
      */
-    protected void link( String href, String name )
-    {
-        sink.link( href );
+    protected void link(String href, String name) {
+        sink.link(href);
 
-        text( name );
+        text(name);
 
         sink.link_();
     }
@@ -352,15 +342,12 @@ public abstract class AbstractMavenReportRenderer
      * @param text a text, could be null.
      * @see Sink#text(String)
      */
-    protected void text( String text )
-    {
-        if ( StringUtils.isEmpty( text ) ) // Take care of spaces
+    protected void text(String text) {
+        if (StringUtils.isEmpty(text)) // Take care of spaces
         {
-            sink.text( "-" );
-        }
-        else
-        {
-            sink.text( text );
+            sink.text("-");
+        } else {
+            sink.text(text);
         }
     }
 
@@ -372,11 +359,10 @@ public abstract class AbstractMavenReportRenderer
      * @see Sink#verbatim(org.apache.maven.doxia.sink.SinkEventAttributes)
      * @see Sink#verbatim_()
      */
-    protected void verbatimText( String text )
-    {
-        sink.verbatim( null );
+    protected void verbatimText(String text) {
+        sink.verbatim(null);
 
-        text( text );
+        text(text);
 
         sink.verbatim_();
     }
@@ -391,17 +377,13 @@ public abstract class AbstractMavenReportRenderer
      * @see Sink#verbatim(org.apache.maven.doxia.sink.SinkEventAttributes)
      * @see Sink#verbatim_()
      */
-    protected void verbatimLink( String text, String href )
-    {
-        if ( StringUtils.isEmpty( href ) )
-        {
-            verbatimText( text );
-        }
-        else
-        {
-            sink.verbatim( null );
+    protected void verbatimLink(String text, String href) {
+        if (StringUtils.isEmpty(href)) {
+            verbatimText(text);
+        } else {
+            sink.verbatim(null);
 
-            link( href, text );
+            link(href, text);
 
             sink.verbatim_();
         }
@@ -415,11 +397,10 @@ public abstract class AbstractMavenReportRenderer
      * @see Sink#verbatim(org.apache.maven.doxia.sink.SinkEventAttributes)
      * @see Sink#verbatim_()
      */
-    protected void verbatimSource( String source )
-    {
-        sink.verbatim( SinkEventAttributeSet.SOURCE );
+    protected void verbatimSource(String source) {
+        sink.verbatim(SinkEventAttributeSet.SOURCE);
 
-        text( source );
+        text(source);
 
         sink.verbatim_();
     }
@@ -430,9 +411,8 @@ public abstract class AbstractMavenReportRenderer
      * @param jsCode a string of Javascript
      * @see Sink#rawText(String)
      */
-    protected void javaScript( String jsCode )
-    {
-        sink.rawText( Markup.EOL + "<script>" + Markup.EOL + jsCode + Markup.EOL + "</script>" + Markup.EOL );
+    protected void javaScript(String jsCode) {
+        sink.rawText(Markup.EOL + "<script>" + Markup.EOL + jsCode + Markup.EOL + "</script>" + Markup.EOL);
     }
 
     /**
@@ -445,34 +425,23 @@ public abstract class AbstractMavenReportRenderer
      * @see #link(String, String)
      * @see #applyPattern(String)
      */
-    public void linkPatternedText( String text )
-    {
-        if ( StringUtils.isEmpty( text ) )
-        {
-            text( text );
-        }
-        else
-        {
-            List<String> segments = applyPattern( text );
-
-            if ( segments == null )
-            {
-                text( text );
-            }
-            else
-            {
-                for ( Iterator<String> it = segments.iterator(); it.hasNext(); )
-                {
+    public void linkPatternedText(String text) {
+        if (StringUtils.isEmpty(text)) {
+            text(text);
+        } else {
+            List<String> segments = applyPattern(text);
+
+            if (segments == null) {
+                text(text);
+            } else {
+                for (Iterator<String> it = segments.iterator(); it.hasNext(); ) {
                     String name = it.next();
                     String href = it.next();
 
-                    if ( href == null )
-                    {
-                        text( name );
-                    }
-                    else
-                    {
-                       link( href, name );
+                    if (href == null) {
+                        text(name);
+                    } else {
+                        link(href, name);
                     }
                 }
             }
@@ -489,15 +458,12 @@ public abstract class AbstractMavenReportRenderer
      * @return a link pattern
      * @see #linkPatternedText(String)
      */
-    protected static String createLinkPatternedText( String text, String href )
-    {
-        if ( text == null )
-        {
+    protected static String createLinkPatternedText(String text, String href) {
+        if (text == null) {
             return text;
         }
 
-        if ( href == null )
-        {
+        if (href == null) {
             return text;
         }
 
@@ -510,23 +476,19 @@ public abstract class AbstractMavenReportRenderer
      * @param props the properties to display.
      * @return the properties object as comma separated String
      */
-    protected static String propertiesToString( Properties props )
-    {
-        if ( props == null || props.isEmpty() )
-        {
+    protected static String propertiesToString(Properties props) {
+        if (props == null || props.isEmpty()) {
             return "";
         }
 
         StringBuilder sb = new StringBuilder();
 
-        for ( Map.Entry<?, ?> entry : props.entrySet() )
-        {
-            if ( sb.length() > 0 )
-            {
-                sb.append( ", " );
+        for (Map.Entry<?, ?> entry : props.entrySet()) {
+            if (sb.length() > 0) {
+                sb.append(", ");
             }
 
-            sb.append( entry.getKey() ).append( "=" ).append( entry.getValue() );
+            sb.append(entry.getKey()).append("=").append(entry.getValue());
         }
 
         return sb.toString();
@@ -543,10 +505,8 @@ public abstract class AbstractMavenReportRenderer
      * @param text a text with or without the pattern <code>{text, url}</code>
      * @return a map of text/href
      */
-    private static List<String> applyPattern( String text )
-    {
-        if ( StringUtils.isEmpty( text ) )
-        {
+    private static List<String> applyPattern(String text) {
+        if (StringUtils.isEmpty(text)) {
             return null;
         }
 
@@ -555,19 +515,15 @@ public abstract class AbstractMavenReportRenderer
         List<String> segments = new ArrayList<>();
 
         // TODO Special case http://jira.codehaus.org/browse/MEV-40
-        if ( text.indexOf( "${" ) != -1 )
-        {
-            int lastComma = text.lastIndexOf( "," );
-            int lastSemi = text.lastIndexOf( "}" );
-            if ( lastComma != -1 && lastSemi != -1 && lastComma < lastSemi )
-            {
-                segments.add( text.substring( lastComma + 1, lastSemi ).trim() );
-                segments.add( null );
-            }
-            else
-            {
-                segments.add( text );
-                segments.add( null );
+        if (text.indexOf("${") != -1) {
+            int lastComma = text.lastIndexOf(",");
+            int lastSemi = text.lastIndexOf("}");
+            if (lastComma != -1 && lastSemi != -1 && lastComma < lastSemi) {
+                segments.add(text.substring(lastComma + 1, lastSemi).trim());
+                segments.add(null);
+            } else {
+                segments.add(text);
+                segments.add(null);
             }
 
             return segments;
@@ -577,38 +533,28 @@ public abstract class AbstractMavenReportRenderer
         int braceStack = 0;
         int lastOffset = 0;
 
-        for ( int i = 0; i < text.length(); i++ )
-        {
-            char ch = text.charAt( i );
+        for (int i = 0; i < text.length(); i++) {
+            char ch = text.charAt(i);
 
-            if ( ch == '\'' && !inQuote && braceStack == 0 )
-            {
+            if (ch == '\'' && !inQuote && braceStack == 0) {
                 // handle: ''
-                if ( i + 1 < text.length() && text.charAt( i + 1 ) == '\'' )
-                {
+                if (i + 1 < text.length() && text.charAt(i + 1) == '\'') {
                     i++;
-                    segments.add( text.substring( lastOffset, i ) );
-                    segments.add( null );
+                    segments.add(text.substring(lastOffset, i));
+                    segments.add(null);
                     lastOffset = i + 1;
-                }
-                else
-                {
+                } else {
                     inQuote = true;
                 }
-            }
-            else
-            {
-                switch ( ch )
-                {
+            } else {
+                switch (ch) {
                     case '{':
-                        if ( !inQuote )
-                        {
-                            if ( braceStack == 0 )
-                            {
-                                if ( i != lastOffset ) // handle { at first character
+                        if (!inQuote) {
+                            if (braceStack == 0) {
+                                if (i != lastOffset) // handle { at first character
                                 {
-                                    segments.add( text.substring( lastOffset, i ) );
-                                    segments.add( null );
+                                    segments.add(text.substring(lastOffset, i));
+                                    segments.add(null);
                                 }
                                 lastOffset = i + 1;
                             }
@@ -616,24 +562,21 @@ public abstract class AbstractMavenReportRenderer
                         }
                         break;
                     case '}':
-                        if ( !inQuote )
-                        {
+                        if (!inQuote) {
                             braceStack--;
-                            if ( braceStack == 0 )
-                            {
-                                String subString = text.substring( lastOffset, i );
+                            if (braceStack == 0) {
+                                String subString = text.substring(lastOffset, i);
                                 lastOffset = i + 1;
 
-                                int lastComma = subString.lastIndexOf( "," );
-                                if ( lastComma != -1 )
-                                {
-                                    segments.add( subString.substring( 0, lastComma ).trim() );
-                                    segments.add( subString.substring( lastComma + 1 ).trim() );
-                                }
-                                else
-                                {
-                                    segments.add( subString );
-                                    segments.add( null );
+                                int lastComma = subString.lastIndexOf(",");
+                                if (lastComma != -1) {
+                                    segments.add(
+                                            subString.substring(0, lastComma).trim());
+                                    segments.add(
+                                            subString.substring(lastComma + 1).trim());
+                                } else {
+                                    segments.add(subString);
+                                    segments.add(null);
                                 }
                             }
                         }
@@ -647,24 +590,21 @@ public abstract class AbstractMavenReportRenderer
             }
         }
 
-        if ( !StringUtils.isEmpty( text.substring( lastOffset ) ) )
-        {
-            segments.add( text.substring( lastOffset ) );
-            segments.add( null );
+        if (!StringUtils.isEmpty(text.substring(lastOffset))) {
+            segments.add(text.substring(lastOffset));
+            segments.add(null);
         }
 
-        if ( braceStack != 0 )
-        {
-            throw new IllegalArgumentException( "Unmatched braces in the pattern." );
+        if (braceStack != 0) {
+            throw new IllegalArgumentException("Unmatched braces in the pattern.");
         }
 
-        if ( inQuote )
-        {
-            //throw new IllegalArgumentException( "Unmatched quote in the pattern." );
-            //TODO: warning...
+        if (inQuote) {
+            // throw new IllegalArgumentException( "Unmatched quote in the pattern." );
+            // TODO: warning...
         }
 
-        return Collections.unmodifiableList( segments );
+        return Collections.unmodifiableList(segments);
     }
 
     // ----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/maven/reporting/AbstractMavenReportRendererTest.java b/src/test/java/org/apache/maven/reporting/AbstractMavenReportRendererTest.java
index 8835476..4f29331 100644
--- a/src/test/java/org/apache/maven/reporting/AbstractMavenReportRendererTest.java
+++ b/src/test/java/org/apache/maven/reporting/AbstractMavenReportRendererTest.java
@@ -1,5 +1,3 @@
-package org.apache.maven.reporting;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -9,7 +7,7 @@ package org.apache.maven.reporting;
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
  *
- *  http://www.apache.org/licenses/LICENSE-2.0
+ *   http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
@@ -18,6 +16,7 @@ package org.apache.maven.reporting;
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.maven.reporting;
 
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
@@ -32,46 +31,35 @@ import static org.junit.jupiter.api.Assertions.fail;
 /**
  * Test case for some public method in AbstractMavenReportRenderer.
  */
-public class AbstractMavenReportRendererTest
-{
-    private static List<String> applyPattern( String pattern )
-        throws Throwable
-    {
-        try
-        {
-            Method method = AbstractMavenReportRenderer.class.getDeclaredMethod( "applyPattern", String.class );
-            method.setAccessible( true );
-            return (List<String>) method.invoke( null, pattern );
-        } catch ( InvocationTargetException ite )
-        {
+public class AbstractMavenReportRendererTest {
+    private static List<String> applyPattern(String pattern) throws Throwable {
+        try {
+            Method method = AbstractMavenReportRenderer.class.getDeclaredMethod("applyPattern", String.class);
+            method.setAccessible(true);
+            return (List<String>) method.invoke(null, pattern);
+        } catch (InvocationTargetException ite) {
             throw ite.getTargetException();
         }
     }
 
-    private static void checkPattern( String pattern, String[] expectedResult ) throws Throwable
-    {
-        List<String> result = applyPattern( pattern );
-        assertEquals( expectedResult.length, result.size(), "result size" );
+    private static void checkPattern(String pattern, String[] expectedResult) throws Throwable {
+        List<String> result = applyPattern(pattern);
+        assertEquals(expectedResult.length, result.size(), "result size");
         int i = 0;
-        for ( Iterator<String> it = result.iterator(); it.hasNext(); )
-        {
+        for (Iterator<String> it = result.iterator(); it.hasNext(); ) {
             String name = it.next();
             String href = it.next();
-            assertEquals( expectedResult[i], name );
-            assertEquals( expectedResult[i + 1], href );
+            assertEquals(expectedResult[i], name);
+            assertEquals(expectedResult[i + 1], href);
             i += 2;
         }
     }
 
-    private static void checkPatternIllegalArgument( String cause, String pattern ) throws Throwable
-    {
-        try
-        {
-            applyPattern( pattern );
-            fail( cause + " should throw an IllegalArgumentException" );
-        }
-        catch ( IllegalArgumentException iae )
-        {
+    private static void checkPatternIllegalArgument(String cause, String pattern) throws Throwable {
+        try {
+            applyPattern(pattern);
+            fail(cause + " should throw an IllegalArgumentException");
+        } catch (IllegalArgumentException iae) {
             // ok
         }
     }
@@ -80,60 +68,61 @@ public class AbstractMavenReportRendererTest
      * @throws Throwable if any
      */
     @Test
-    public void testApplyPattern() throws Throwable
-    {
+    public void testApplyPattern() throws Throwable {
         // the most simple test
-        checkPattern( "test {text,url}", new String[] { "test ", null, "text", "url" } );
+        checkPattern("test {text,url}", new String[] {"test ", null, "text", "url"});
 
         // check that link content is trimmed, and no problem if 2 text values are the same
-        checkPattern( "test{ text , url }test", new String[] { "test", null, "text", "url", "test", null } );
+        checkPattern("test{ text , url }test", new String[] {"test", null, "text", "url", "test", null});
 
         // check brace stacking
-        checkPattern( "test{ {text} , url }", new String[] { "test", null, "{text}", "url" } );
+        checkPattern("test{ {text} , url }", new String[] {"test", null, "{text}", "url"});
 
         // check quoting
-        checkPatternIllegalArgument( "unmatched brace", "{" );
-        checkPattern( "'{'", new String[] { "'{'", null } );
-        checkPattern( " ' { '.", new String[] { " ' { '.", null } );
+        checkPatternIllegalArgument("unmatched brace", "{");
+        checkPattern("'{'", new String[] {"'{'", null});
+        checkPattern(" ' { '.", new String[] {" ' { '.", null});
 
         // unmatched quote: the actual behavior is to ignore that they are unmatched
-        checkPattern( " '", new String[] { " '", null } );
+        checkPattern(" '", new String[] {" '", null});
         // but shouldn't it be different and throw an IllegalArgumentException?
         //    checkPatternIllegalArgument( "unmatched quote", " ' " );
         //    checkPatternIllegalArgument( "unmatched quote", " '" );
         // impact is too important to make the change for the moment
 
         // check double quoting
-        checkPattern( " ''", new String[] { " '", null } );
-        checkPattern( " '' ", new String[] { " '", null } );
-        checkPattern( " ''   ", new String[] { " '", null } );
+        checkPattern(" ''", new String[] {" '", null});
+        checkPattern(" '' ", new String[] {" '", null});
+        checkPattern(" ''   ", new String[] {" '", null});
 
         // real world cases with quote
-        checkPattern( "project''s info", new String[] { "project'", null, "s info", null } );
-        checkPattern( "it''s a question of {chance, http://en.wikipedia.org/wiki/Chance}",
-                      new String[] { "it'", null, "s a question of ", null,
-                                     "chance", "http://en.wikipedia.org/wiki/Chance" } );
-        checkPattern( "{s'inscrire,mail@mail.com}", new String[] { "s'inscrire", "mail@mail.com" } );
+        checkPattern("project''s info", new String[] {"project'", null, "s info", null});
+        checkPattern(
+                "it''s a question of {chance, http://en.wikipedia.org/wiki/Chance}",
+                new String[] {"it'", null, "s a question of ", null, "chance", "http://en.wikipedia.org/wiki/Chance"});
+        checkPattern("{s'inscrire,mail@mail.com}", new String[] {"s'inscrire", "mail@mail.com"});
 
         // throwing an IllegalArgumentException in case of unmatched quote would avoid the following:
-        checkPattern( "it's a question of {chance, http://en.wikipedia.org/wiki/Chance}",
-                      new String[] { "it's a question of {chance, http://en.wikipedia.org/wiki/Chance}", null } );
+        checkPattern(
+                "it's a question of {chance, http://en.wikipedia.org/wiki/Chance}",
+                new String[] {"it's a question of {chance, http://en.wikipedia.org/wiki/Chance}", null});
 
-        checkPattern( "{}test,", new String[] { "", null, "test,", null } );
-        checkPattern( "Hi ${name}. How is it going, sir?", new String[] { "Hi ${name}. How is it going, sir?", null } );
+        checkPattern("{}test,", new String[] {"", null, "test,", null});
+        checkPattern("Hi ${name}. How is it going, sir?", new String[] {"Hi ${name}. How is it going, sir?", null});
 
         // MSHARED-392 multiple links
-        checkPattern( "{Indiana University Extreme! Lab Software License, vesion 1.1.1,"
+        checkPattern(
+                "{Indiana University Extreme! Lab Software License, vesion 1.1.1,"
                         + "http://www.extreme.indiana.edu/viewcvs/~checkout~/XPP3/java/LICENSE.txt}"
                         + "{Public Domain,http://creativecommons.org/licenses/publicdomain}"
                         + "{Apache Software License, version 1.1,http://www.apache.org/licenses/LICENSE-1.1}",
-                                  new String[]{"Indiana University Extreme! Lab Software License, vesion 1.1.1", 
-                                      "http://www.extreme.indiana.edu/viewcvs/~checkout~/XPP3/java/LICENSE.txt",
-                                      "Public Domain",
-                                      "http://creativecommons.org/licenses/publicdomain",
-                                      "Apache Software License, version 1.1",
-                                      "http://www.apache.org/licenses/LICENSE-1.1"});
-
-        
+                new String[] {
+                    "Indiana University Extreme! Lab Software License, vesion 1.1.1",
+                    "http://www.extreme.indiana.edu/viewcvs/~checkout~/XPP3/java/LICENSE.txt",
+                    "Public Domain",
+                    "http://creativecommons.org/licenses/publicdomain",
+                    "Apache Software License, version 1.1",
+                    "http://www.apache.org/licenses/LICENSE-1.1"
+                });
     }
 }