Metric Results

[ summary ] [ packages ] [ cycles ] [ explanations ]

The following document contains the results of a JDepend metric analysis. The various metrics are defined at the bottom of this document.

Summary

[ summary ] [ packages ] [ cycles ] [ explanations ]

PackageTCCCACCaCeAIDV
info.magnolia.cms.beans.config330210.0%33.0%67.0%1
info.magnolia.cms.beans.runtime20202100.0%100.0%100.0%1
info.magnolia.module.templating2316762830.000002%82.0%13.0%1
info.magnolia.module.templating.engine6421533.0%83.0%17.0%1
info.magnolia.module.templating.freemarker220050.0%100.0%0.0%1
info.magnolia.module.templating.paragraphs43101225.0%100.0%25.0%1
info.magnolia.module.templating.renderers54101720.0%100.0%20.0%1
info.magnolia.module.templating.setup110070.0%100.0%0.0%1
info.magnolia.module.templating.setup.for3_5110130.0%75.0%25.0%1
info.magnolia.module.templating.setup.for4_0660190.0%90.0%10.0%1

Packages

[ summary ] [ packages ] [ cycles ] [ explanations ]

info.magnolia.cms.beans.config

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
210.0%33.0%67.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneinfo.magnolia.cms.beans.config.Paragraph
info.magnolia.cms.beans.config.ParagraphRenderingFacade
info.magnolia.cms.beans.config.Template
info.magnolia.module.templating
info.magnolia.module.templating.renderers
info.magnolia.module.templating

info.magnolia.cms.beans.runtime

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
02100.0%100.0%100.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
info.magnolia.cms.beans.runtime.ParagraphRenderer
info.magnolia.cms.beans.runtime.TemplateRenderer
NoneNoneinfo.magnolia.module.templating
java.lang

info.magnolia.module.templating

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
62830.000002%82.0%13.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
info.magnolia.module.templating.AbstractRenderer
info.magnolia.module.templating.EarlyExecutionAware
info.magnolia.module.templating.ParagraphRenderer
info.magnolia.module.templating.RenderableDefinition
info.magnolia.module.templating.RenderingModel
info.magnolia.module.templating.RenderingModelBasedRenderer
info.magnolia.module.templating.TemplateRenderer
info.magnolia.module.templating.AbstractRenderable
info.magnolia.module.templating.HTMLEncodingContentWrapper
info.magnolia.module.templating.HTMLEncodingNodeDataWrapper
info.magnolia.module.templating.MagnoliaTemplatingUtilities
info.magnolia.module.templating.ModelExecutionFilter
info.magnolia.module.templating.Paragraph
info.magnolia.module.templating.ParagraphManager
info.magnolia.module.templating.ParagraphRendererManager
info.magnolia.module.templating.ParagraphRenderingFacade
info.magnolia.module.templating.RenderException
info.magnolia.module.templating.RenderingFilter
info.magnolia.module.templating.RenderingModelImpl
info.magnolia.module.templating.Template
info.magnolia.module.templating.TemplateManager
info.magnolia.module.templating.TemplateRendererManager
info.magnolia.module.templating.TemplatingModule
info.magnolia.cms.beans.config
info.magnolia.cms.beans.runtime
info.magnolia.module.templating.engine
info.magnolia.module.templating.freemarker
info.magnolia.module.templating.paragraphs
info.magnolia.module.templating.renderers
freemarker.core
info.magnolia.cms.beans.config
info.magnolia.cms.core
info.magnolia.cms.filters
info.magnolia.cms.i18n
info.magnolia.cms.security
info.magnolia.cms.util
info.magnolia.content2bean
info.magnolia.context
info.magnolia.link
info.magnolia.module
info.magnolia.module.templating.engine
info.magnolia.objectfactory
java.io
java.lang
java.lang.reflect
java.util
javax.jcr
javax.servlet
javax.servlet.http
javax.servlet.jsp
org.apache.commons.beanutils
org.apache.commons.io
org.apache.commons.lang
org.apache.commons.lang.builder
org.apache.commons.lang.exception
org.apache.commons.lang.math
org.slf4j

info.magnolia.module.templating.engine

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
1533.0%83.0%17.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
info.magnolia.module.templating.engine.DefaultRenderingEngine$RenderingHelper
info.magnolia.module.templating.engine.RenderingEngine
info.magnolia.module.templating.engine.DefaultRenderingEngine
info.magnolia.module.templating.engine.DefaultRenderingEngine$1
info.magnolia.module.templating.engine.DefaultRenderingEngine$RenderingHelper$1
info.magnolia.module.templating.engine.DefaultRenderingEngine$RenderingHelper$2
info.magnolia.module.templating
info.magnolia.cms.core
info.magnolia.context
info.magnolia.module.templating
java.io
java.lang

info.magnolia.module.templating.freemarker

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
050.0%100.0%0.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneinfo.magnolia.module.templating.freemarker.RenderableDefinitionModel
info.magnolia.module.templating.freemarker.RenderableDefinitionModel$Factory
Nonefreemarker.ext.beans
freemarker.template
info.magnolia.freemarker.models
info.magnolia.module.templating
java.lang

info.magnolia.module.templating.paragraphs

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
01225.0%100.0%25.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
info.magnolia.module.templating.paragraphs.AbstractParagraphRenderer
info.magnolia.module.templating.paragraphs.FreemarkerParagraphRenderer
info.magnolia.module.templating.paragraphs.JspParagraphRenderer
info.magnolia.module.templating.paragraphs.PlainTextParagraphRenderer
Nonefreemarker.template
info.magnolia.cms.core
info.magnolia.cms.util
info.magnolia.context
info.magnolia.freemarker
info.magnolia.module.templating
java.io
java.lang
java.util
javax.servlet.jsp
org.apache.commons.lang.exception
org.slf4j

info.magnolia.module.templating.renderers

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
01720.0%100.0%20.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
info.magnolia.module.templating.renderers.AbstractTemplateRenderer
info.magnolia.module.templating.renderers.FreemarkerTemplateRenderer
info.magnolia.module.templating.renderers.JspTemplateRenderer
info.magnolia.module.templating.renderers.PlainTextTemplateRenderer
info.magnolia.module.templating.renderers.ServletTemplateRenderer
Nonefreemarker.template
info.magnolia.cms.beans.config
info.magnolia.cms.core
info.magnolia.cms.gui.inline
info.magnolia.cms.util
info.magnolia.context
info.magnolia.freemarker
info.magnolia.module.templating
info.magnolia.objectfactory
java.io
java.lang
java.util
javax.servlet
javax.servlet.http
org.apache.commons.lang
org.apache.commons.lang.exception
org.slf4j

info.magnolia.module.templating.setup

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
070.0%100.0%0.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneinfo.magnolia.module.templating.setup.TemplatingModuleVersionHandler
Noneinfo.magnolia.cms.core
info.magnolia.module
info.magnolia.module.delta
info.magnolia.module.templating.setup.for3_5
info.magnolia.module.templating.setup.for4_0
java.lang
java.util

info.magnolia.module.templating.setup.for3_5

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
130.0%75.0%25.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneinfo.magnolia.module.templating.setup.for3_5.IntroduceParagraphRenderers
info.magnolia.module.templating.setup
info.magnolia.module
info.magnolia.module.delta
java.lang

info.magnolia.module.templating.setup.for4_0

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
190.0%90.0%10.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneinfo.magnolia.module.templating.setup.for4_0.DeprecateDialogPathAllModules
info.magnolia.module.templating.setup.for4_0.DeprecateDialogPathAllModules$1
info.magnolia.module.templating.setup.for4_0.FixTemplatePathTask
info.magnolia.module.templating.setup.for4_0.NestPropertiesAllModulesNodeTask
info.magnolia.module.templating.setup.for4_0.RenamePropertyAllModulesNodeTask
info.magnolia.module.templating.setup.for4_0.RenamePropertyAllModulesNodeTask$1
info.magnolia.module.templating.setup
info.magnolia.cms.core
info.magnolia.cms.util
info.magnolia.module
info.magnolia.module.delta
java.lang
java.util
javax.jcr
org.apache.commons.lang
org.slf4j

Cycles

[ summary ] [ packages ] [ cycles ] [ explanations ]

PackagePackage Dependencies
info.magnolia.cms.beans.configinfo.magnolia.module.templating
info.magnolia.module.templating.engine
info.magnolia.module.templating
info.magnolia.cms.beans.runtimeinfo.magnolia.module.templating
info.magnolia.module.templating.engine
info.magnolia.module.templating
info.magnolia.module.templatinginfo.magnolia.module.templating.engine
info.magnolia.module.templating
info.magnolia.module.templating.engineinfo.magnolia.module.templating
info.magnolia.module.templating.engine
info.magnolia.module.templating.freemarkerinfo.magnolia.module.templating
info.magnolia.module.templating.engine
info.magnolia.module.templating
info.magnolia.module.templating.paragraphsinfo.magnolia.module.templating
info.magnolia.module.templating.engine
info.magnolia.module.templating
info.magnolia.module.templating.renderersinfo.magnolia.module.templating
info.magnolia.module.templating.engine
info.magnolia.module.templating

Explanation

[ summary ] [ packages ] [ cycles ] [ explanations ]

The following explanations are for quick reference and are lifted directly from the original JDepend documentation.

TermDescription
Number of ClassesThe number of concrete and abstract classes (and interfaces) in the package is an indicator of the extensibility of the package.
Afferent CouplingsThe number of other packages that depend upon classes within the package is an indicator of the package's responsibility.
Efferent CouplingsThe number of other packages that the classes in the package depend upon is an indicator of the package's independence.
AbstractnessThe 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.
InstabilityThe 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.
DistanceThe 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.
CyclesPackages 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.