<?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 :: Proxy Api - Checkstyle report</title>
    <link>https://archiva.apache.org/ref/3.0.0-SNAPSHOT/archiva-base/archiva-proxy-api</link>
    <description>Archiva Base :: Proxy Api - Checkstyle report</description>
    <language>en-us</language>
    <copyright>&#169;2006 - 2019 The Apache Software Foundation</copyright>
    <item>
      <title>File: 7,
             Errors: 242,
             Warnings: 50,
             Infos: 2
      </title>
            <link>https://archiva.apache.org/ref/3.0.0-SNAPSHOT/archiva-base/archiva-proxy-api/checkstyle.html</link>
      <description>
        <p>Click <a href="https://archiva.apache.org/ref/3.0.0-SNAPSHOT/archiva-base/archiva-proxy-api/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-proxy-api/checkstyle.html#org.apache.archiva.proxy.model.ProxyConnectorRuleType.java">org/apache/archiva/proxy/model/ProxyConnectorRuleType.java</a>
                </td>
                <td>
                  2
                </td>
                <td>
                  2
                </td>
                <td>
                  1
                </td>
              </tr>
                          <tr>
                <td>
                  <a href="https://archiva.apache.org/ref/3.0.0-SNAPSHOT/archiva-base/archiva-proxy-api/checkstyle.html#org.apache.archiva.proxy.model.NetworkProxyTest.java">org/apache/archiva/proxy/model/NetworkProxyTest.java</a>
                </td>
                <td>
                  0
                </td>
                <td>
                  14
                </td>
                <td>
                  203
                </td>
              </tr>
                          <tr>
                <td>
                  <a href="https://archiva.apache.org/ref/3.0.0-SNAPSHOT/archiva-base/archiva-proxy-api/checkstyle.html#org.apache.archiva.proxy.model.RepositoryProxyHandler.java">org/apache/archiva/proxy/model/RepositoryProxyHandler.java</a>
                </td>
                <td>
                  0
                </td>
                <td>
                  7
                </td>
                <td>
                  9
                </td>
              </tr>
                          <tr>
                <td>
                  <a href="https://archiva.apache.org/ref/3.0.0-SNAPSHOT/archiva-base/archiva-proxy-api/checkstyle.html#org.apache.archiva.proxy.model.ProxyConnector.java">org/apache/archiva/proxy/model/ProxyConnector.java</a>
                </td>
                <td>
                  0
                </td>
                <td>
                  7
                </td>
                <td>
                  4
                </td>
              </tr>
                          <tr>
                <td>
                  <a href="https://archiva.apache.org/ref/3.0.0-SNAPSHOT/archiva-base/archiva-proxy-api/checkstyle.html#org.apache.archiva.proxy.model.NetworkProxy.java">org/apache/archiva/proxy/model/NetworkProxy.java</a>
                </td>
                <td>
                  0
                </td>
                <td>
                  16
                </td>
                <td>
                  18
                </td>
              </tr>
                          <tr>
                <td>
                  <a href="https://archiva.apache.org/ref/3.0.0-SNAPSHOT/archiva-base/archiva-proxy-api/checkstyle.html#org.apache.archiva.proxy.model.ProxyFetchResult.java">org/apache/archiva/proxy/model/ProxyFetchResult.java</a>
                </td>
                <td>
                  0
                </td>
                <td>
                  3
                </td>
                <td>
                  0
                </td>
              </tr>
                          <tr>
                <td>
                  <a href="https://archiva.apache.org/ref/3.0.0-SNAPSHOT/archiva-base/archiva-proxy-api/checkstyle.html#org.apache.archiva.proxy.ProxyRegistry.java">org/apache/archiva/proxy/ProxyRegistry.java</a>
                </td>
                <td>
                  0
                </td>
                <td>
                  1
                </td>
                <td>
                  7
                </td>
              </tr>
                      </tbody>
        </table>
        
      </description>
    </item>
  </channel>
</rss>

