<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.11.1 at 2023-01-07 
 | Rendered using Apache Maven Fluido Skin 1.5
-->
<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="20230107" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Apache Shiro :: Support :: Servlet Plugin &#x2013; JDepend Report Metrics</title>
    <link rel="stylesheet" href="./css/apache-maven-fluido-1.5.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.5.min.js"></script>

                      </head>
        <body class="topBarDisabled">
          
        
    
        <div class="container-fluid">
          <div id="banner">
        <div class="pull-left">
                                    <a href="http://shiro.apache.org" id="bannerLeft">
                                                                                        <img src="http://shiro.apache.org/images/apache-shiro-logo.png"  alt="Shiro"/>
                </a>
                      </div>
        <div class="pull-right">              <div id="bannerRight">
                                                                                        <img src="http://shiro.apache.org/images/asf_logo.png" />
                </div>
      </div>
        <div class="clear"><hr/></div>
      </div>

      <div id="breadcrumbs">
        <ul class="breadcrumb">
              
                              <li class="">
                    <a href="../../index.html" title="Apache Shiro :: Support :: Servlet Plugin">
        Apache Shiro :: Support :: Servlet Plugin</a>
                    <span class="divider">/</span>
      </li>
            <li class="">
                    <a href="../index.html" title="Apache Shiro :: Support">
        Apache Shiro :: Support</a>
                    <span class="divider">/</span>
      </li>
            <li class="">
                    <a href="index.html" title="Apache Shiro :: Support :: Servlet Plugin">
        Apache Shiro :: Support :: Servlet Plugin</a>
                    <span class="divider">/</span>
      </li>
        <li class="active ">JDepend Report Metrics</li>
        
              
                  <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2023-01-07</li>
              <li id="projectVersion" class="pull-right">
                    Version: 1.11.0
        </li>
            
                            </ul>
      </div>

            
      <div class="row-fluid">
        <div id="leftColumn" class="span2">
          <div class="well sidebar-nav">
              
                <ul class="nav nav-list">
                    <li class="nav-header">Parent Project</li>
                              
      <li>
  
                          <a href="../index.html" title="Apache Shiro :: Support">
          <span class="none"></span>
        Apache Shiro :: Support</a>
            </li>
                                        <li class="nav-header">Project Documentation</li>
                                                                                                                                                                                                                                                                                                                          
      <li>
  
                          <a href="project-info.html" title="Project Information">
          <span class="icon-chevron-right"></span>
        Project Information</a>
                  </li>
                                                                                                                                                    
      <li>
  
                          <a href="project-reports.html" title="Project Reports">
          <span class="icon-chevron-down"></span>
        Project Reports</a>
                    <ul class="nav nav-list">
                    
      <li>
  
                          <a href="cpd.html" title="CPD">
          <span class="none"></span>
        CPD</a>
            </li>
                    
      <li>
  
                          <a href="pmd.html" title="PMD">
          <span class="none"></span>
        PMD</a>
            </li>
                    
      <li>
  
                          <a href="surefire-report.html" title="Surefire Report">
          <span class="none"></span>
        Surefire Report</a>
            </li>
                    
      <li class="active">
  
            <a href="#"><span class="none"></span>JDepend</a>
          </li>
                    
      <li>
  
                          <a href="dashboard-report.html" title="DashBoard Report">
          <span class="none"></span>
        DashBoard Report</a>
            </li>
              </ul>
        </li>
            </ul>
              
                
          <hr />

           <div id="poweredBy">
                            <div class="clear"></div>
                            <div class="clear"></div>
                            <div class="clear"></div>
                            <div class="clear"></div>
                             <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>
                  </div>
          </div>
        </div>
        
                
        <div id="bodyColumn"  class="span10" >
                                  
            <section>
<h2><a name="Metric_Results"></a>Metric Results</h2>[ <a href="#summary">summary</a> ] [ <a href="#packages">packages</a> ] [ <a href="#cycles">cycles</a> ] [ <a href="#explanations">explanations</a> ] <br /><br />The following document contains the results of a JDepend metric analysis. The various metrics are defined at the bottom of this document.<br /><br /><a name="summary"></a>
<h2><a name="Summary"></a>Summary</h2>[ <a href="#summary">summary</a> ] [ <a href="#packages">packages</a> ] [ <a href="#cycles">cycles</a> ] [ <a href="#explanations">explanations</a> ] <br /><br />
<table border="0" class="table table-striped">
<tr class="a">
<th>Package</th>
<th>TC</th>
<th>CC</th>
<th>AC</th>
<th>Ca</th>
<th>Ce</th>
<th>A</th>
<th>I</th>
<th>D</th>
<th>V</th></tr></table><a name="packages"></a>
<h2><a name="Packages"></a>Packages</h2>[ <a href="#summary">summary</a> ] [ <a href="#packages">packages</a> ] [ <a href="#cycles">cycles</a> ] [ <a href="#explanations">explanations</a> ] <br />There are no package used.<br /><a name="cycles"></a>
<h2><a name="Cycles"></a>Cycles</h2>[ <a href="#summary">summary</a> ] [ <a href="#packages">packages</a> ] [ <a href="#cycles">cycles</a> ] [ <a href="#explanations">explanations</a> ] <br /><br />There are no cyclic dependencies.<br /><a name="explanations"></a>
<h2><a name="Explanation"></a>Explanation</h2>[ <a href="#summary">summary</a> ] [ <a href="#packages">packages</a> ] [ <a href="#cycles">cycles</a> ] [ <a href="#explanations">explanations</a> ] <br /><br />The following explanations are for quick reference and are lifted directly from the original JDepend documentation.<br /><br />
<table border="0" class="table table-striped">
<tr class="b">
<th>Term</th>
<th>Description</th></tr>
<tr class="a">
<td>Number of Classes</td>
<td>The number of concrete and abstract classes (and interfaces) in the package is an indicator of the extensibility of the package.</td></tr>
<tr class="b">
<td>Afferent Couplings</td>
<td>The number of other packages that depend upon classes within the package is an indicator of the package's responsibility.</td></tr>
<tr class="a">
<td>Efferent Couplings</td>
<td>The number of other packages that the classes in the package depend upon is an indicator of the package's independence.</td></tr>
<tr class="b">
<td>Abstractness</td>
<td>The ratio of the number of abstract classes (and interfaces) in the analyzed package to the total number of classes in the analyzed package. The range for this metric is 0 to 1, with A=0 indicating a completely concrete package and A=1 indicating a completely abstract package.</td></tr>
<tr class="a">
<td>Instability</td>
<td>The ratio of efferent coupling (Ce) to total coupling (Ce / (Ce + Ca)). This metric is an indicator of the package's resilience to change. The range for this metric is 0 to 1, with I=0 indicating a completely stable package and I=1 indicating a completely instable package.</td></tr>
<tr class="b">
<td>Distance</td>
<td>The perpendicular distance of a package from the idealized line A + I = 1. This metric is an indicator of the package's balance between abstractness and stability. A package squarely on the main sequence is optimally balanced with respect to its abstractness and stability. Ideal packages are either completely abstract and stable (x=0, y=1) or completely concrete and instable (x=1, y=0). The range for this metric is 0 to 1, with D=0 indicating a package that is coincident with the main sequence and D=1 indicating a package that is as far from the main sequence as possible.</td></tr>
<tr class="a">
<td>Cycles</td>
<td>Packages participating in a package dependency cycle are  in a deadly embrace with respect to reusability and their  release cycle. Package dependency cycles can be easily identified by reviewing the textual reports of dependency cycles. Once these dependency cycles have been identified with JDepend, they can be broken by employing various object-oriented techniques.</td></tr></table></section>
                  </div>
            </div>
          </div>

    <hr/>

    <footer>
            <div class="container-fluid">
                      <div class="row-fluid">
                                      <p >Copyright &copy;                    2004&#x2013;2023
                        <a href="https://www.apache.org/">The Apache Software Foundation</a>.
            All rights reserved.    
      </p>
                </div>

        
                </div>
    </footer>
        </body>
</html>
