// Path: src/main/java/com/redhat/rcm/maven/plugin/buildmetadata/util/FilePathNormalizer.java
// public final class FilePathNormalizer implements Normalizer
// {
//   // ********************************* Fields *********************************
// 
//   // --- constants ------------------------------------------------------------
// 
//   // --- members --------------------------------------------------------------
// 
//   /**
//    * The path to the root folder. Used to trim references to project files.
//    */
//   private final String baseDir;
// 
//   /**
//    * The precalculated length of the {@link #baseDir} string.
//    */
//   private final int prefixLength;
// 
//   // ****************************** Initializer *******************************
// 
//   // ****************************** Constructors ******************************
// 
//   /**
//    * Default constructor.
//    *
//    * @param baseDir the path to the root folder.
//    * @throws NullPointerException if {@code baseDir} is <code>null</code>.
//    */
//   public FilePathNormalizer(final String baseDir) throws NullPointerException
//   {
//     this.baseDir = baseDir.trim();
//     this.prefixLength = baseDir.length();
//   }
// 
//   // ****************************** Inner Classes *****************************
// 
//   // ********************************* Methods ********************************
// 
//   // --- init -----------------------------------------------------------------
// 
//   // --- get&set --------------------------------------------------------------
// 
//   /**
//    * Returns the path to the root folder. Used to trim references to project
//    * files.
//    *
//    * @return the path to the root folder.
//    */
//   public String getBaseDir()
//   {
//     return baseDir;
//   }
// 
//   // --- business -------------------------------------------------------------
// 
//   /**
//    * {@inheritDoc}
//    * <p>
//    * Removed the prefix path defined by the {@code baseDir} passed in via the
//    * {@link #FilePathNormalizer(String)} constructor.
//    * </p>
//    */
//   public String normalize(final String input)
//   {
//     final String prefixed =
//         input.startsWith(baseDir) ? input.substring(prefixLength) : input;
//     final String norm = prefixed.replace('\\', '/');
//     if (norm.charAt(0) == '/' && norm.length() > 1)
//     {
//       return norm.substring(1);
//     }
//     return norm;
//   }
// 
//   // --- object basics --------------------------------------------------------
// 
// }


import java.io.File;
import java.util.List;
import java.util.Locale;
import java.util.ResourceBundle;
import org.apache.maven.doxia.sink.Sink;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.reporting.MavenReportException;
import com.redhat.rcm.maven.plugin.buildmetadata.common.Property;
import com.redhat.rcm.maven.plugin.buildmetadata.util.FilePathNormalizer;
              "build.properties");
      this.propertyOutputFileMapping = mapper.initOutputFileMapping();
      if (createPropertiesReport)
      {
        propertiesOutputFile =
            mapper.getPropertiesOutputFile(activatePropertyOutputFileMapping,
                propertiesOutputFile);
      }
      else
      {
        propertiesOutputFile =
            new File(project.getBuild().getDirectory(), "build.properties");
      }
    }
  }

  /**
   * {@inheritDoc}
   *
   * @see org.apache.maven.reporting.AbstractMavenReport#executeReport(java.util.Locale)
   */
  @Override
  protected void executeReport(final Locale locale) throws MavenReportException
  {
    super.executeReport(locale);

    final Sink sink = getSink();
    final ResourceBundle messages = getBundle(locale);
    final String baseDir = project.getBasedir().getAbsolutePath();
    final BuildReportRenderer renderer =
// Path: src/main/java/com/redhat/rcm/maven/plugin/buildmetadata/util/FilePathNormalizer.java
// public final class FilePathNormalizer implements Normalizer
// {
//   // ********************************* Fields *********************************
// 
//   // --- constants ------------------------------------------------------------
// 
//   // --- members --------------------------------------------------------------
// 
//   /**
//    * The path to the root folder. Used to trim references to project files.
//    */
//   private final String baseDir;
// 
//   /**
//    * The precalculated length of the {@link #baseDir} string.
//    */
//   private final int prefixLength;
// 
//   // ****************************** Initializer *******************************
// 
//   // ****************************** Constructors ******************************
// 
//   /**
//    * Default constructor.
//    *
//    * @param baseDir the path to the root folder.
//    * @throws NullPointerException if {@code baseDir} is <code>null</code>.
//    */
//   public FilePathNormalizer(final String baseDir) throws NullPointerException
//   {
//     this.baseDir = baseDir.trim();
//     this.prefixLength = baseDir.length();
//   }
// 
//   // ****************************** Inner Classes *****************************
// 
//   // ********************************* Methods ********************************
// 
//   // --- init -----------------------------------------------------------------
// 
//   // --- get&set --------------------------------------------------------------
// 
//   /**
//    * Returns the path to the root folder. Used to trim references to project
//    * files.
//    *
//    * @return the path to the root folder.
//    */
//   public String getBaseDir()
//   {
//     return baseDir;
//   }
// 
//   // --- business -------------------------------------------------------------
// 
//   /**
//    * {@inheritDoc}
//    * <p>
//    * Removed the prefix path defined by the {@code baseDir} passed in via the
//    * {@link #FilePathNormalizer(String)} constructor.
//    * </p>
//    */
//   public String normalize(final String input)
//   {
//     final String prefixed =
//         input.startsWith(baseDir) ? input.substring(prefixLength) : input;
//     final String norm = prefixed.replace('\\', '/');
//     if (norm.charAt(0) == '/' && norm.length() > 1)
//     {
//       return norm.substring(1);
//     }
//     return norm;
//   }
// 
//   // --- object basics --------------------------------------------------------
// 
// }


// Path: src/main/java/com/redhat/rcm/maven/plugin/buildmetadata/BuildReportMojo.java
import java.io.File;
import java.util.List;
import java.util.Locale;
import java.util.ResourceBundle;
import org.apache.maven.doxia.sink.Sink;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.reporting.MavenReportException;
import com.redhat.rcm.maven.plugin.buildmetadata.common.Property;
import com.redhat.rcm.maven.plugin.buildmetadata.util.FilePathNormalizer;

              "build.properties");
      this.propertyOutputFileMapping = mapper.initOutputFileMapping();
      if (createPropertiesReport)
      {
        propertiesOutputFile =
            mapper.getPropertiesOutputFile(activatePropertyOutputFileMapping,
                propertiesOutputFile);
      }
      else
      {
        propertiesOutputFile =
            new File(project.getBuild().getDirectory(), "build.properties");
      }
    }
  }

  /**
   * {@inheritDoc}
   *
   * @see org.apache.maven.reporting.AbstractMavenReport#executeReport(java.util.Locale)
   */
  @Override
  protected void executeReport(final Locale locale) throws MavenReportException
  {
    super.executeReport(locale);

    final Sink sink = getSink();
    final ResourceBundle messages = getBundle(locale);
    final String baseDir = project.getBasedir().getAbsolutePath();
    final BuildReportRenderer renderer =
        new BuildReportRenderer(new FilePathNormalizer(baseDir), messages,