<?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 Web :: RSS - Checkstyle report</title>
    <link>http://archiva.apache.org/ref/2.2.8/archiva-web/archiva-rss</link>
    <description>Archiva Web :: RSS - Checkstyle report</description>
    <language>en-us</language>
    <copyright>&#169;2006 - 2022 The Apache Software Foundation</copyright>
    <item>
      <title>File: 9,
             Errors: 42,
             Warnings: 47,
             Infos: 5
      </title>
            <link>http://archiva.apache.org/ref/2.2.8/archiva-web/archiva-rss/checkstyle.html</link>
      <description>
        <p>Click <a href="http://archiva.apache.org/ref/2.2.8/archiva-web/archiva-rss/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="http://archiva.apache.org/ref/2.2.8/archiva-web/archiva-rss/checkstyle.html#org.apache.archiva.rss.processor.NewVersionsOfArtifactRssFeedProcessorTest.java">org/apache/archiva/rss/processor/NewVersionsOfArtifactRssFeedProcessorTest.java</a>
                </td>
                <td>
                  0
                </td>
                <td>
                  1
                </td>
                <td>
                  7
                </td>
              </tr>
                          <tr>
                <td>
                  <a href="http://archiva.apache.org/ref/2.2.8/archiva-web/archiva-rss/checkstyle.html#org.apache.archiva.rss.processor.NewVersionsOfArtifactRssFeedProcessor.java">org/apache/archiva/rss/processor/NewVersionsOfArtifactRssFeedProcessor.java</a>
                </td>
                <td>
                  0
                </td>
                <td>
                  6
                </td>
                <td>
                  5
                </td>
              </tr>
                          <tr>
                <td>
                  <a href="http://archiva.apache.org/ref/2.2.8/archiva-web/archiva-rss/checkstyle.html#org.apache.archiva.rss.RssFeedGenerator.java">org/apache/archiva/rss/RssFeedGenerator.java</a>
                </td>
                <td>
                  2
                </td>
                <td>
                  1
                </td>
                <td>
                  9
                </td>
              </tr>
                          <tr>
                <td>
                  <a href="http://archiva.apache.org/ref/2.2.8/archiva-web/archiva-rss/checkstyle.html#org.apache.archiva.rss.processor.NewArtifactsRssFeedProcessor.java">org/apache/archiva/rss/processor/NewArtifactsRssFeedProcessor.java</a>
                </td>
                <td>
                  0
                </td>
                <td>
                  8
                </td>
                <td>
                  6
                </td>
              </tr>
                          <tr>
                <td>
                  <a href="http://archiva.apache.org/ref/2.2.8/archiva-web/archiva-rss/checkstyle.html#org.apache.archiva.rss.RssFeedGeneratorTest.java">org/apache/archiva/rss/RssFeedGeneratorTest.java</a>
                </td>
                <td>
                  0
                </td>
                <td>
                  2
                </td>
                <td>
                  7
                </td>
              </tr>
                          <tr>
                <td>
                  <a href="http://archiva.apache.org/ref/2.2.8/archiva-web/archiva-rss/checkstyle.html#org.apache.archiva.rss.processor.NewArtifactsRssFeedProcessorTest.java">org/apache/archiva/rss/processor/NewArtifactsRssFeedProcessorTest.java</a>
                </td>
                <td>
                  0
                </td>
                <td>
                  4
                </td>
                <td>
                  6
                </td>
              </tr>
                          <tr>
                <td>
                  <a href="http://archiva.apache.org/ref/2.2.8/archiva-web/archiva-rss/checkstyle.html#org.apache.archiva.rss.processor.RssFeedProcessor.java">org/apache/archiva/rss/processor/RssFeedProcessor.java</a>
                </td>
                <td>
                  3
                </td>
                <td>
                  1
                </td>
                <td>
                  0
                </td>
              </tr>
                          <tr>
                <td>
                  <a href="http://archiva.apache.org/ref/2.2.8/archiva-web/archiva-rss/checkstyle.html#org.apache.archiva.rss.processor.AbstractArtifactsRssFeedProcessor.java">org/apache/archiva/rss/processor/AbstractArtifactsRssFeedProcessor.java</a>
                </td>
                <td>
                  0
                </td>
                <td>
                  2
                </td>
                <td>
                  1
                </td>
              </tr>
                          <tr>
                <td>
                  <a href="http://archiva.apache.org/ref/2.2.8/archiva-web/archiva-rss/checkstyle.html#org.apache.archiva.rss.RssFeedEntry.java">org/apache/archiva/rss/RssFeedEntry.java</a>
                </td>
                <td>
                  0
                </td>
                <td>
                  22
                </td>
                <td>
                  1
                </td>
              </tr>
                      </tbody>
        </table>
        
      </description>
    </item>
  </channel>
</rss>

