<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia 
 | Rendered using Apache Maven Fluido Skin 1.3.1
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta name="Date-Revision-yyyymmdd" content="20230320" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Archiva Base :: Consumers :: Metadata &#x2013; Checkstyle Results</title>
    <link rel="stylesheet" href="./css/apache-maven-fluido-1.3.1.min.css" />
    <link rel="stylesheet" href="./css/site.css" />
    <link rel="stylesheet" href="./css/print.css" media="print" />

      
    <script type="text/javascript" src="./js/apache-maven-fluido-1.3.1.min.js"></script>

    
              <!-- Google Analytics -->
    <script type="text/javascript">

      var _gaq = _gaq || [];
      _gaq.push(['_setAccount', 'UA-140879-5']);
      _gaq.push(['_trackPageview']);

      (function() {
        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
      })();

    </script>
          </head>
        <body class="topBarEnabled">
          
                        
                    
                

    <div id="topbar" class="navbar navbar-fixed-top ">
      <div class="navbar-inner">
                                  <div class="container"><div class="nav-collapse">
            
                
                                <ul class="nav">
                          <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project Documentation <b class="caret"></b></a>
        <ul class="dropdown-menu">
        
                      <li class="dropdown-submenu">
                                      <a href="project-info.html"  title="Project Information">Project Information</a>
              <ul class="dropdown-menu">
                                  <li>      <a href="integration.html"  title="Continuous Integration">Continuous Integration</a>
</li>
                                  <li>      <a href="dependencies.html"  title="Dependencies">Dependencies</a>
</li>
                                  <li>      <a href="dependency-info.html"  title="Dependency Information">Dependency Information</a>
</li>
                                  <li>      <a href="dependency-management.html"  title="Dependency Management">Dependency Management</a>
</li>
                                  <li>      <a href="distribution-management.html"  title="Distribution Management">Distribution Management</a>
</li>
                                  <li>      <a href="index.html"  title="About">About</a>
</li>
                                  <li>      <a href="issue-tracking.html"  title="Issue Tracking">Issue Tracking</a>
</li>
                                  <li>      <a href="license.html"  title="Project License">Project License</a>
</li>
                                  <li>      <a href="mail-lists.html"  title="Mailing Lists">Mailing Lists</a>
</li>
                                  <li>      <a href="plugin-management.html"  title="Plugin Management">Plugin Management</a>
</li>
                                  <li>      <a href="plugins.html"  title="Project Plugins">Project Plugins</a>
</li>
                                  <li>      <a href="team-list.html"  title="Project Team">Project Team</a>
</li>
                                  <li>      <a href="source-repository.html"  title="Source Repository">Source Repository</a>
</li>
                                  <li>      <a href="project-summary.html"  title="Project Summary">Project Summary</a>
</li>
                              </ul>
            </li>
                  
                      <li class="dropdown-submenu">
                                      <a href="project-reports.html"  title="Project Reports">Project Reports</a>
              <ul class="dropdown-menu">
                                  <li>      <a href="xref/index.html"  title="Source Xref">Source Xref</a>
</li>
                                  <li>      <a href="checkstyle.html"  title="Checkstyle">Checkstyle</a>
</li>
                              </ul>
            </li>
                          </ul>
      </li>
                  </ul>
          
                      <form id="search-form" action="http://www.google.com/search" method="get"  class="navbar-search pull-right" >
    
  <input value="http://archiva.apache.org/ref/2.2.10" name="sitesearch" type="hidden"/>
  <input class="search-query" name="q" id="query" type="text" />
</form>
<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
          
                                                    
        
        
        <ul class="nav pull-right"><li>
    
    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="right" data-size="large" data-show-screen-name="true" data-lang="en">Follow archiva</a>
    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>

        </li></ul>
                              
                   
                      </div>
          
        </div>
      </div>
    </div>
    
        <div class="container">
          <div id="banner">
        <div class="pull-left">
                                                  <a href="../../../../../index.html" id="bannerLeft">
                                                                                                <img src="../../../../../images/archiva.png"  alt="Apache Archiva"/>
                </a>
                      </div>
        <div class="pull-right">                  <a href="http://www.apache.org/" id="bannerRight">
                                                                                        <img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/>
                </a>
      </div>
        <div class="clear"><hr/></div>
      </div>

      <div id="breadcrumbs">
        <ul class="breadcrumb">
                
                    
                              <li class="">
                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
        Apache</a>
                    <span class="divider">/</span>
      </li>
            <li class="">
                    <a href="../../../" title="Apache Archiva">
        Apache Archiva</a>
                    <span class="divider">/</span>
      </li>
            <li class="">
                    <a href="../../../" title="Archiva :: Modules">
        Archiva :: Modules</a>
                    <span class="divider">/</span>
      </li>
            <li class="">
                    <a href="../../" title="Archiva :: Base">
        Archiva :: Base</a>
                    <span class="divider">/</span>
      </li>
            <li class="">
                    <a href="../" title="Archiva Base :: Consumers">
        Archiva Base :: Consumers</a>
                    <span class="divider">/</span>
      </li>
                <li class="">
                    <a href="./" title="Archiva Base :: Consumers :: Metadata">
        Archiva Base :: Consumers :: Metadata</a>
                    <span class="divider">/</span>
      </li>
        <li class="active ">Checkstyle Results</li>
        
                
                    
                  <li id="publishDate" class="pull-right">Last Published: 20 Mar 2023</li>
            
                            </ul>
      </div>

      
                
        <div id="bodyColumn" >
                                  
            <div class="section">
<h2><a name="Checkstyle_Results"></a>Checkstyle Results</h2>
<p>The following document contains the results of <a class="externalLink" href="http://checkstyle.sourceforge.net/">Checkstyle</a> 5.7.&#160;<a href="checkstyle.rss"><img alt="rss feed" src="images/rss.png" /></a></p></div>
<div class="section">
<h2><a name="Summary"></a>Summary</h2>
<table border="0" class="table table-striped">
<tr class="a">
<th>Files</th>
<th><img src="images/icon_info_sml.gif" alt="" />&#160;Info</th>
<th><img src="images/icon_warning_sml.gif" alt="" />&#160;Warnings</th>
<th><img src="images/icon_error_sml.gif" alt="" />&#160;Errors</th></tr>
<tr class="b">
<td>1</td>
<td>0</td>
<td>3</td>
<td>7</td></tr></table></div>
<div class="section">
<h2><a name="Files"></a>Files</h2>
<table border="0" class="table table-striped">
<tr class="a">
<th>File</th>
<th><img src="images/icon_info_sml.gif" alt="" />&#160;I</th>
<th><img src="images/icon_warning_sml.gif" alt="" />&#160;W</th>
<th><img src="images/icon_error_sml.gif" alt="" />&#160;E</th></tr>
<tr class="b">
<td><a href="#org.apache.archiva.consumers.metadata.ArchivaMetadataCreationConsumer.java">org/apache/archiva/consumers/metadata/ArchivaMetadataCreationConsumer.java</a></td>
<td>0</td>
<td>3</td>
<td>7</td></tr></table></div>
<div class="section">
<h2><a name="Rules"></a>Rules</h2>
<table border="0" class="table table-striped">
<tr class="a">
<th>Category</th>
<th>Rule</th>
<th>Violations</th>
<th>Severity</th></tr>
<tr class="b">
<td>coding</td>
<td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_coding.html#HiddenField">HiddenField</a>
<ul>
<li>ignoreConstructorParameter: <tt>&quot;true&quot;</tt></li>
<li>ignoreSetter: <tt>&quot;true&quot;</tt></li></ul></td>
<td>2</td>
<td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td></tr>
<tr class="a">
<td>javadoc</td>
<td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_javadoc.html#JavadocMethod">JavadocMethod</a>
<ul>
<li>scope: <tt>&quot;protected&quot;</tt></li></ul></td>
<td>1</td>
<td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td></tr>
<tr class="b">
<td>naming</td>
<td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_naming.html#ConstantName">ConstantName</a></td>
<td>1</td>
<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr>
<tr class="a">
<td>whitespace</td>
<td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_whitespace.html#ParenPad">ParenPad</a>
<ul>
<li>option: <tt>&quot;space&quot;</tt></li></ul></td>
<td>6</td>
<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr></table></div>
<div class="section">
<h2><a name="Details"></a>Details</h2>
<div class="section">
<h3 id="org.apache.archiva.consumers.metadata.ArchivaMetadataCreationConsumer.java">org/apache/archiva/consumers/metadata/ArchivaMetadataCreationConsumer.java</h3>
<table border="0" class="table table-striped">
<tr class="b">
<th>Severity</th>
<th>Category</th>
<th>Rule</th>
<th>Message</th>
<th>Line</th></tr>
<tr class="a">
<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
<td>whitespace</td>
<td>ParenPad</td>
<td>'(' is not followed by whitespace.</td>
<td><a href="./xref/org/apache/archiva/consumers/metadata/ArchivaMetadataCreationConsumer.html#L59">59</a></td></tr>
<tr class="b">
<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
<td>whitespace</td>
<td>ParenPad</td>
<td>')' is not preceded with whitespace.</td>
<td><a href="./xref/org/apache/archiva/consumers/metadata/ArchivaMetadataCreationConsumer.html#L59">59</a></td></tr>
<tr class="a">
<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
<td>whitespace</td>
<td>ParenPad</td>
<td>'(' is not followed by whitespace.</td>
<td><a href="./xref/org/apache/archiva/consumers/metadata/ArchivaMetadataCreationConsumer.html#L60">60</a></td></tr>
<tr class="b">
<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
<td>whitespace</td>
<td>ParenPad</td>
<td>')' is not preceded with whitespace.</td>
<td><a href="./xref/org/apache/archiva/consumers/metadata/ArchivaMetadataCreationConsumer.html#L60">60</a></td></tr>
<tr class="a">
<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
<td>whitespace</td>
<td>ParenPad</td>
<td>'(' is not followed by whitespace.</td>
<td><a href="./xref/org/apache/archiva/consumers/metadata/ArchivaMetadataCreationConsumer.html#L90">90</a></td></tr>
<tr class="b">
<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
<td>whitespace</td>
<td>ParenPad</td>
<td>')' is not preceded with whitespace.</td>
<td><a href="./xref/org/apache/archiva/consumers/metadata/ArchivaMetadataCreationConsumer.html#L90">90</a></td></tr>
<tr class="a">
<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
<td>naming</td>
<td>ConstantName</td>
<td>Name 'log' must match pattern '^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$'.</td>
<td><a href="./xref/org/apache/archiva/consumers/metadata/ArchivaMetadataCreationConsumer.html#L93">93</a></td></tr>
<tr class="b">
<td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
<td>coding</td>
<td>HiddenField</td>
<td>'whenGathered' hides a field.</td>
<td><a href="./xref/org/apache/archiva/consumers/metadata/ArchivaMetadataCreationConsumer.html#L122">122</a></td></tr>
<tr class="a">
<td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
<td>coding</td>
<td>HiddenField</td>
<td>'whenGathered' hides a field.</td>
<td><a href="./xref/org/apache/archiva/consumers/metadata/ArchivaMetadataCreationConsumer.html#L130">130</a></td></tr>
<tr class="b">
<td><img src="images/icon_warning_sml.gif" alt="" />&#160;Warning</td>
<td>javadoc</td>
<td>JavadocMethod</td>
<td>Missing a Javadoc comment.</td>
<td><a href="./xref/org/apache/archiva/consumers/metadata/ArchivaMetadataCreationConsumer.html#L257">257</a></td></tr></table></div></div>
                  </div>
          </div>

    <hr/>

    <footer>
            <div class="container">
                      <div class="row">
                              <p >Copyright &copy;                    2006&#x2013;2023
                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
            All rights reserved.      
                    
      </p>
        </div>

        
                <p id="poweredBy" class="pull-right">
                          <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
        <img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
      </a>
              </p>
        
          
    
    
                
    <div id="ohloh" class="pull-right">
      <script type="text/javascript" src="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
    </div>
        </div>
    </footer>
        </body>
</html>
