<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.8.1 at 2020-05-02 
 | 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="20200502" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Apache Shiro :: Support :: Quartz &#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 :: Quartz">
        Apache Shiro :: Support :: Quartz</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 :: Quartz">
        Apache Shiro :: Support :: Quartz</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: 2020-05-02</li>
              <li id="projectVersion" class="pull-right">
                    Version: 1.5.3
        </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="apidocs/index.html" title="Javadoc">
          <span class="none"></span>
        Javadoc</a>
            </li>
                    
      <li>
  
                          <a href="xref/index.html" title="Source Xref">
          <span class="none"></span>
        Source Xref</a>
            </li>
                    
      <li>
  
                          <a href="surefire-report.html" title="Surefire Report">
          <span class="none"></span>
        Surefire Report</a>
            </li>
                    
      <li>
  
                          <a href="taglist.html" title="Tag List">
          <span class="none"></span>
        Tag List</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" >
                                  
            <div class="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>
<tr class="b">
<td><a href="#org.apache.shiro.session.mgt.quartz">org.apache.shiro.session.mgt.quartz</a></td>
<td>2</td>
<td>2</td>
<td>0</td>
<td>0</td>
<td>5</td>
<td>0.0%</td>
<td>100.0%</td>
<td>0.0%</td>
<td>1</td></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 /><a name="org.apache.shiro.session.mgt.quartz"></a>
<h3><a name="org.apache.shiro.session.mgt.quartz"></a>org.apache.shiro.session.mgt.quartz</h3>
<table border="0" class="table table-striped">
<tr class="a">
<th>Afferent Couplings</th>
<th>Efferent Couplings</th>
<th>Abstractness</th>
<th>Instability</th>
<th>Distance</th></tr>
<tr class="b">
<td>0</td>
<td>5</td>
<td>0.0%</td>
<td>100.0%</td>
<td>0.0%</td></tr></table>
<table border="0" class="table table-striped">
<tr class="a">
<th>Abstract Classes</th>
<th>Concrete Classes</th>
<th>Used by Packages</th>
<th>Uses Packages</th></tr>
<tr class="b">
<td><i>None</i></td>
<td>org.apache.shiro.session.mgt.quartz.QuartzSessionValidationJob<br />org.apache.shiro.session.mgt.quartz.QuartzSessionValidationScheduler<br /></td>
<td><i>None</i></td>
<td>java.lang<br />org.apache.shiro.session.mgt<br />org.quartz<br />org.quartz.impl<br />org.slf4j<br /></td></tr></table><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="a">
<th>Term</th>
<th>Description</th></tr>
<tr class="b">
<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="a">
<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="b">
<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="a">
<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="b">
<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="a">
<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="b">
<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></div>
                  </div>
            </div>
          </div>

    <hr/>

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

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