<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
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.
-->
<rss version="0.91">
  <channel>
    <title>Archiva Base :: Consumers :: Metadata - Checkstyle report</title>
    <link>https://archiva.apache.org/ref/3.0.0-SNAPSHOT/archiva-base/archiva-consumers/archiva-metadata-consumer</link>
    <description>Archiva Base :: Consumers :: Metadata - Checkstyle report</description>
    <language>en-us</language>
    <copyright>&#169;2006 - 2019 The Apache Software Foundation</copyright>
    <item>
      <title>File: 1,
             Errors: 36,
             Warnings: 3,
             Infos: 0
      </title>
            <link>https://archiva.apache.org/ref/3.0.0-SNAPSHOT/archiva-base/archiva-consumers/archiva-metadata-consumer/checkstyle.html</link>
      <description>
        <p>Click <a href="https://archiva.apache.org/ref/3.0.0-SNAPSHOT/archiva-base/archiva-consumers/archiva-metadata-consumer/checkstyle.html">here</a> for the full Checkstyle report.</p>

        <table summary="Files" boder="1">
          <thead>
            <tr>
              <th>Files</th>
              <th style="width:30px;"><abbr title="Info">I</abbr></th>
              <th style="width:30px;"><abbr title="Warning">W</abbr></th>
              <th style="width:30px;"><abbr title="Error">E</abbr></th>
            </tr>
          </thead>
          <tbody>
                          <tr>
                <td>
                  <a href="https://archiva.apache.org/ref/3.0.0-SNAPSHOT/archiva-base/archiva-consumers/archiva-metadata-consumer/checkstyle.html#org.apache.archiva.consumers.metadata.ArchivaMetadataCreationConsumer.java">org/apache/archiva/consumers/metadata/ArchivaMetadataCreationConsumer.java</a>
                </td>
                <td>
                  0
                </td>
                <td>
                  3
                </td>
                <td>
                  36
                </td>
              </tr>
                      </tbody>
        </table>
        
      </description>
    </item>
  </channel>
</rss>

