<!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="20211219" />
    <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.7" 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: 19 Dec 2021</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;2021
                        <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>
