<?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 :: Maven 2 Metadata - Checkstyle report</title>
    <link>http://archiva.apache.org/ref/2.2.10/archiva-base/archiva-maven2-metadata</link>
    <description>Archiva Base :: Maven 2 Metadata - Checkstyle report</description>
    <language>en-us</language>
    <copyright>&#169;2006 - 2023 The Apache Software Foundation</copyright>
    <item>
      <title>File: 1,
             Errors: 1,
             Warnings: 1,
             Infos: 0
      </title>
            <link>http://archiva.apache.org/ref/2.2.10/archiva-base/archiva-maven2-metadata/checkstyle.html</link>
      <description>
        <p>Click <a href="http://archiva.apache.org/ref/2.2.10/archiva-base/archiva-maven2-metadata/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.10/archiva-base/archiva-maven2-metadata/checkstyle.html#org.apache.archiva.maven2.metadata.MavenMetadataReader.java">org/apache/archiva/maven2/metadata/MavenMetadataReader.java</a>
                </td>
                <td>
                  0
                </td>
                <td>
                  1
                </td>
                <td>
                  1
                </td>
              </tr>
                      </tbody>
        </table>
        
      </description>
    </item>
  </channel>
</rss>

