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 ]

Package TC CC AC Ca Ce A I D V
info.magnolia.cms.beans.config 2 1 1 2 9 50.0% 82.0% 32.0% 1
info.magnolia.cms.beans.runtime 1 1 0 3 6 0.0% 67.0% 33.0% 1
info.magnolia.cms.core 12 5 7 15 20 58.0% 57.0% 15.000001% 1
info.magnolia.cms.core.search 6 3 3 2 11 50.0% 85.0% 35.0% 1
info.magnolia.cms.core.version 4 4 0 2 13 0.0% 87.0% 13.0% 1
info.magnolia.cms.exchange 1 0 1 0 6 100.0% 100.0% 100.0% 1
info.magnolia.cms.servlets 4 0 4 0 12 100.0% 100.0% 100.0% 1
info.magnolia.cms.util 32 27 5 12 25 16.0% 68.0% 17.0% 1
info.magnolia.content2bean 18 12 6 1 11 33.0% 92.0% 25.0% 1
info.magnolia.content2bean.impl 12 12 0 1 15 0.0% 94.0% 6.0% 1
info.magnolia.freemarker.models 1 1 0 0 8 0.0% 100.0% 0.0% 1
info.magnolia.importexport 2 2 0 1 9 0.0% 90.0% 10.0% 1
info.magnolia.module.delta 9 6 3 3 10 33.0% 77.0% 10.0% 1
info.magnolia.nodebuilder 30 24 6 1 12 20.0% 92.0% 12.0% 1
info.magnolia.nodebuilder.task 7 6 1 0 8 14.0% 100.0% 14.0% 1
info.magnolia.setup 2 2 0 0 13 0.0% 100.0% 0.0% 1
info.magnolia.setup.initial 6 6 0 0 11 0.0% 100.0% 0.0% 1

Packages

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

info.magnolia.cms.beans.config

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 9 50.0% 82.0% 32.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
info.magnolia.cms.beans.config.ObservedManager
info.magnolia.cms.beans.config.ObservedManager$1
info.magnolia.cms.beans.runtime
info.magnolia.setup.initial
info.magnolia.cms.core
info.magnolia.cms.util
info.magnolia.context
info.magnolia.repository
java.lang
java.util
javax.jcr
javax.jcr.observation
org.slf4j

info.magnolia.cms.beans.runtime

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 6 0.0% 67.0% 33.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None info.magnolia.cms.beans.runtime.FileProperties
info.magnolia.cms.util
info.magnolia.freemarker.models
info.magnolia.nodebuilder
info.magnolia.cms.beans.config
info.magnolia.cms.core
java.lang
javax.jcr
org.apache.commons.lang3
org.apache.commons.lang3.math

info.magnolia.cms.core

Afferent Couplings Efferent Couplings Abstractness Instability Distance
15 20 58.0% 57.0% 15.000001%
Abstract Classes Concrete Classes Used by Packages Uses Packages
info.magnolia.cms.core.AbstractContent
info.magnolia.cms.core.AbstractNodeData
info.magnolia.cms.core.Content
info.magnolia.cms.core.Content$ContentFilter
info.magnolia.cms.core.ContentHandler
info.magnolia.cms.core.HierarchyManager
info.magnolia.cms.core.NodeData
info.magnolia.cms.core.BinaryNodeData
info.magnolia.cms.core.DefaultHierarchyManager
info.magnolia.cms.core.DefaultNodeData
info.magnolia.cms.core.ItemType
info.magnolia.cms.core.NonExistingNodeData
info.magnolia.cms.beans.config
info.magnolia.cms.beans.runtime
info.magnolia.cms.core.search
info.magnolia.cms.core.version
info.magnolia.cms.exchange
info.magnolia.cms.util
info.magnolia.content2bean
info.magnolia.content2bean.impl
info.magnolia.freemarker.models
info.magnolia.importexport
info.magnolia.module.delta
info.magnolia.nodebuilder
info.magnolia.nodebuilder.task
info.magnolia.setup
info.magnolia.setup.initial
info.magnolia.cms.core.search
info.magnolia.cms.core.version
info.magnolia.cms.i18n
info.magnolia.cms.security
info.magnolia.cms.util
info.magnolia.context
info.magnolia.jcr
info.magnolia.jcr.util
info.magnolia.jcr.wrapper
info.magnolia.repository
java.io
java.lang
java.util
javax.jcr
javax.jcr.lock
javax.jcr.nodetype
javax.jcr.version
org.apache.commons.lang3
org.apache.jackrabbit
org.slf4j

info.magnolia.cms.core.search

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 11 50.0% 85.0% 35.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
info.magnolia.cms.core.search.Query
info.magnolia.cms.core.search.QueryManager
info.magnolia.cms.core.search.QueryResult
info.magnolia.cms.core.search.QueryImpl
info.magnolia.cms.core.search.QueryManagerImpl
info.magnolia.cms.core.search.QueryResultImpl
info.magnolia.cms.core
info.magnolia.cms.util
info.magnolia.cms.core
info.magnolia.cms.security
java.lang
java.util
javax.jcr
javax.jcr.lock
javax.jcr.nodetype
javax.jcr.query
javax.jcr.version
org.apache.commons.lang3
org.slf4j

info.magnolia.cms.core.version

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 13 0.0% 87.0% 13.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None info.magnolia.cms.core.version.ContentVersion
info.magnolia.cms.core.version.ContentVersion$1
info.magnolia.cms.core.version.ContentVersion$ContentVersionChildWrapper
info.magnolia.cms.core.version.ContentVersion$ContentVersionChildWrapper$1
info.magnolia.cms.core
info.magnolia.cms.util
info.magnolia.cms.core
info.magnolia.cms.security
info.magnolia.cms.util
info.magnolia.objectfactory
info.magnolia.repository
java.lang
java.util
javax.jcr
javax.jcr.lock
javax.jcr.nodetype
javax.jcr.version
org.apache.commons.lang3
org.slf4j

info.magnolia.cms.exchange

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 6 100.0% 100.0% 100.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
info.magnolia.cms.exchange.Syndicator
None None info.magnolia.cms.core
info.magnolia.cms.security
info.magnolia.cms.util
java.lang
java.util
javax.jcr

info.magnolia.cms.servlets

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 12 100.0% 100.0% 100.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
info.magnolia.cms.servlets.CommandBasedMVCServletHandler
info.magnolia.cms.servlets.MVCServlet
info.magnolia.cms.servlets.MVCServletHandler
info.magnolia.cms.servlets.MVCServletHandlerImpl
None None info.magnolia.cms.util
info.magnolia.commands
info.magnolia.commands.chain
info.magnolia.context
java.io
java.lang
java.lang.reflect
java.util
javax.servlet
javax.servlet.http
org.apache.commons.beanutils
org.slf4j

info.magnolia.cms.util

Afferent Couplings Efferent Couplings Abstractness Instability Distance
12 25 16.0% 68.0% 17.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
info.magnolia.cms.util.ContentUtil$PostVisitor
info.magnolia.cms.util.ContentUtil$Visitor
info.magnolia.cms.util.ContentWrapper
info.magnolia.cms.util.HierarchyManagerWrapper
info.magnolia.cms.util.NodeDataWrapper
info.magnolia.cms.util.ContentUtil
info.magnolia.cms.util.ContentUtil$1
info.magnolia.cms.util.ContentUtil$2
info.magnolia.cms.util.ContentUtil$3
info.magnolia.cms.util.ContentUtil$4
info.magnolia.cms.util.CreationDateComparator
info.magnolia.cms.util.ExtendingContentWrapper
info.magnolia.cms.util.ExtendingContentWrapper$1
info.magnolia.cms.util.HierarchyManagerUtil
info.magnolia.cms.util.InheritanceContentWrapper
info.magnolia.cms.util.LazyContentWrapper
info.magnolia.cms.util.LazyNodeDataWrapper
info.magnolia.cms.util.MetaDataUtil
info.magnolia.cms.util.NodeDataStringComparator
info.magnolia.cms.util.NodeDataUtil
info.magnolia.cms.util.NodeMapWrapper
info.magnolia.cms.util.NodeMapWrapper$1
info.magnolia.cms.util.NodeNameComparator
info.magnolia.cms.util.NodePathComparator
info.magnolia.cms.util.NodeTypeFilter
info.magnolia.cms.util.NodeUuidComparator
info.magnolia.cms.util.RequestFormUtil
info.magnolia.cms.util.RuleBasedContentFilter
info.magnolia.cms.util.SearchReplace
info.magnolia.cms.util.SiblingsHelper
info.magnolia.cms.util.SystemContentWrapper
info.magnolia.cms.util.SystemNodeDataWrapper
info.magnolia.cms.beans.config
info.magnolia.cms.core
info.magnolia.cms.core.version
info.magnolia.cms.exchange
info.magnolia.cms.servlets
info.magnolia.content2bean
info.magnolia.content2bean.impl
info.magnolia.importexport
info.magnolia.module.delta
info.magnolia.nodebuilder
info.magnolia.nodebuilder.task
info.magnolia.setup.initial
info.magnolia.cms.beans.runtime
info.magnolia.cms.core
info.magnolia.cms.core.search
info.magnolia.cms.core.version
info.magnolia.cms.i18n
info.magnolia.cms.security
info.magnolia.context
info.magnolia.jcr.util
info.magnolia.link
info.magnolia.objectfactory
info.magnolia.repository
java.io
java.lang
java.net
java.util
java.util.regex
javax.jcr
javax.jcr.lock
javax.jcr.nodetype
javax.jcr.version
javax.servlet.http
org.apache.commons.beanutils
org.apache.commons.io
org.apache.commons.lang3
org.slf4j

info.magnolia.content2bean

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 11 33.0% 92.0% 25.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
info.magnolia.content2bean.Bean2ContentProcessor
info.magnolia.content2bean.Bean2ContentTransformer
info.magnolia.content2bean.Content2BeanProcessor
info.magnolia.content2bean.Content2BeanTransformer
info.magnolia.content2bean.TransformationState
info.magnolia.content2bean.TypeMapping
info.magnolia.content2bean.Bean2ContentProcessor$Factory
info.magnolia.content2bean.Content2BeanException
info.magnolia.content2bean.Content2BeanProcessor$Factory
info.magnolia.content2bean.Content2BeanTransformer$Factory
info.magnolia.content2bean.Content2BeanUtil
info.magnolia.content2bean.Content2BeanUtil$1
info.magnolia.content2bean.Content2BeanUtil$2
info.magnolia.content2bean.Content2BeanUtil$DefaultClassTransformer
info.magnolia.content2bean.Content2BeanUtil$ToMapTransformer
info.magnolia.content2bean.PropertyTypeDescriptor
info.magnolia.content2bean.TypeDescriptor
info.magnolia.content2bean.TypeMapping$Factory
info.magnolia.content2bean.impl
info.magnolia.cms.core
info.magnolia.cms.util
info.magnolia.content2bean.impl
info.magnolia.exception
info.magnolia.objectfactory
java.beans
java.lang
java.lang.reflect
java.util
javax.jcr
org.apache.commons.beanutils

info.magnolia.content2bean.impl

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 15 0.0% 94.0% 6.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None info.magnolia.content2bean.impl.CollectionPropertyHidingTransformer
info.magnolia.content2bean.impl.Content2BeanProcessorImpl
info.magnolia.content2bean.impl.Content2BeanTransformerImpl
info.magnolia.content2bean.impl.DescriptorFileBasedTypeMapping
info.magnolia.content2bean.impl.DescriptorFileBasedTypeMapping$1
info.magnolia.content2bean.impl.EnumAwareConvertUtilsBean
info.magnolia.content2bean.impl.EnumAwareConvertUtilsBean$1
info.magnolia.content2bean.impl.EnumAwareConvertUtilsBean$EnumConverter
info.magnolia.content2bean.impl.PropertiesBasedTypeDescriptor
info.magnolia.content2bean.impl.PropertiesBasedTypeMapping
info.magnolia.content2bean.impl.TransformationStateImpl
info.magnolia.content2bean.impl.TypeMappingImpl
info.magnolia.content2bean
info.magnolia.cms.core
info.magnolia.cms.util
info.magnolia.content2bean
info.magnolia.objectfactory
java.beans
java.io
java.lang
java.lang.reflect
java.util
javax.jcr
org.apache.commons.beanutils
org.apache.commons.collections4
org.apache.commons.io
org.apache.commons.lang3
org.slf4j

info.magnolia.freemarker.models

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 8 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None info.magnolia.freemarker.models.BinaryNodeDataModel
None freemarker.template
info.magnolia.cms.beans.runtime
info.magnolia.cms.core
java.lang
java.text
java.util
javax.jcr
org.apache.commons.lang3

info.magnolia.importexport

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 9 0.0% 90.0% 10.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None info.magnolia.importexport.PropertiesImportExport
info.magnolia.importexport.PropertiesImportExport$1
info.magnolia.module.delta
info.magnolia.cms.core
info.magnolia.cms.util
java.io
java.lang
java.util
javax.jcr
org.apache.commons.beanutils
org.apache.commons.lang3
org.apache.jackrabbit.util

info.magnolia.module.delta

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 10 33.0% 77.0% 10.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
info.magnolia.module.delta.AllChildrenNodesOperation
info.magnolia.module.delta.AllModulesNodeOperation
info.magnolia.module.delta.NodeCheckDelegateTask
info.magnolia.module.delta.IsAuthorInstanceDelegateTask
info.magnolia.module.delta.PropertiesImportTask
info.magnolia.module.delta.PropertyExistsDelegateTask
info.magnolia.module.delta.PropertyValueDelegateTask
info.magnolia.module.delta.RenamePropertyAllModulesNodeTask
info.magnolia.module.delta.RenamePropertyAllModulesNodeTask$1
info.magnolia.nodebuilder.task
info.magnolia.setup
info.magnolia.setup.initial
info.magnolia.cms.core
info.magnolia.cms.util
info.magnolia.importexport
info.magnolia.module
info.magnolia.repository
java.io
java.lang
java.util
javax.jcr
org.apache.commons.lang3

info.magnolia.nodebuilder

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 12 20.0% 92.0% 12.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
info.magnolia.nodebuilder.AbstractErrorHandler
info.magnolia.nodebuilder.AbstractNodeOperation
info.magnolia.nodebuilder.ErrorHandler
info.magnolia.nodebuilder.NodeOperation
info.magnolia.nodebuilder.Ops
info.magnolia.nodebuilder.Ops$AbstractOp
info.magnolia.nodebuilder.ContentOps
info.magnolia.nodebuilder.ContentOps$1
info.magnolia.nodebuilder.ContentOps$2
info.magnolia.nodebuilder.ContentOps$3
info.magnolia.nodebuilder.NodeBuilder
info.magnolia.nodebuilder.NodeBuilderUtil
info.magnolia.nodebuilder.NodeOperationException
info.magnolia.nodebuilder.Ops$1
info.magnolia.nodebuilder.Ops$10
info.magnolia.nodebuilder.Ops$11
info.magnolia.nodebuilder.Ops$12
info.magnolia.nodebuilder.Ops$13
info.magnolia.nodebuilder.Ops$14
info.magnolia.nodebuilder.Ops$2
info.magnolia.nodebuilder.Ops$3
info.magnolia.nodebuilder.Ops$4
info.magnolia.nodebuilder.Ops$5
info.magnolia.nodebuilder.Ops$6
info.magnolia.nodebuilder.Ops$7
info.magnolia.nodebuilder.Ops$8
info.magnolia.nodebuilder.Ops$9
info.magnolia.nodebuilder.RecursiveOp
info.magnolia.nodebuilder.RecursiveOp$1
info.magnolia.nodebuilder.StrictErrorHandler
info.magnolia.nodebuilder.task
info.magnolia.cms.beans.runtime
info.magnolia.cms.core
info.magnolia.cms.util
info.magnolia.context
info.magnolia.jcr.nodebuilder
info.magnolia.jcr.util
java.io
java.lang
java.util
javax.jcr
org.apache.commons.collections4
org.apache.commons.lang3

info.magnolia.nodebuilder.task

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 8 14.0% 100.0% 14.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
info.magnolia.nodebuilder.task.AbstractNodeBuilderTask
info.magnolia.nodebuilder.task.AbstractNodeBuilderTask$1
info.magnolia.nodebuilder.task.ErrorHandling
info.magnolia.nodebuilder.task.ModuleConfigNodeBuilderTask
info.magnolia.nodebuilder.task.ModuleNodeBuilderTask
info.magnolia.nodebuilder.task.NodeBuilderTask
info.magnolia.nodebuilder.task.TaskLogErrorHandler
None info.magnolia.cms.core
info.magnolia.cms.util
info.magnolia.module
info.magnolia.module.delta
info.magnolia.nodebuilder
java.lang
javax.jcr
org.apache.commons.lang3

info.magnolia.setup

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 13 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None info.magnolia.setup.HashUsersPasswords
info.magnolia.setup.HashUsersPasswords$1
None info.magnolia.cms.core
info.magnolia.cms.security
info.magnolia.jcr.util
info.magnolia.module
info.magnolia.module.delta
info.magnolia.repository
java.io
java.lang
java.util
javax.jcr
org.apache.commons.codec.binary
org.apache.commons.lang3
org.slf4j

info.magnolia.setup.initial

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 11 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None info.magnolia.setup.initial.AddURIPermissionsToAllRoles
info.magnolia.setup.initial.AddURIPermissionsToAllRoles$1
info.magnolia.setup.initial.UpdateURI2RepositoryMappings
info.magnolia.setup.initial.UpdateURIMappings
info.magnolia.setup.initial.UpdateURIMappings$1
info.magnolia.setup.initial.WarnIgnoredModuleFilters
None info.magnolia.cms.beans.config
info.magnolia.cms.core
info.magnolia.cms.util
info.magnolia.jcr.util
info.magnolia.module
info.magnolia.module.delta
info.magnolia.repository
java.lang
java.util
javax.jcr
org.slf4j

Cycles

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

Package Package Dependencies
info.magnolia.cms.beans.config info.magnolia.cms.core
info.magnolia.cms.core.search
info.magnolia.cms.core
info.magnolia.cms.beans.runtime info.magnolia.cms.core
info.magnolia.cms.core.search
info.magnolia.cms.core
info.magnolia.cms.core info.magnolia.cms.core.search
info.magnolia.cms.core
info.magnolia.cms.core.search info.magnolia.cms.core
info.magnolia.cms.core.search
info.magnolia.cms.core.version info.magnolia.cms.core
info.magnolia.cms.core.search
info.magnolia.cms.core
info.magnolia.cms.exchange info.magnolia.cms.core
info.magnolia.cms.core.search
info.magnolia.cms.core
info.magnolia.cms.servlets info.magnolia.cms.util
info.magnolia.cms.core
info.magnolia.cms.core.search
info.magnolia.cms.core
info.magnolia.cms.util info.magnolia.cms.core
info.magnolia.cms.core.search
info.magnolia.cms.core
info.magnolia.content2bean info.magnolia.cms.core
info.magnolia.cms.core.search
info.magnolia.cms.core
info.magnolia.content2bean.impl info.magnolia.cms.core
info.magnolia.cms.core.search
info.magnolia.cms.core
info.magnolia.freemarker.models info.magnolia.cms.core
info.magnolia.cms.core.search
info.magnolia.cms.core
info.magnolia.importexport info.magnolia.cms.core
info.magnolia.cms.core.search
info.magnolia.cms.core
info.magnolia.module.delta info.magnolia.cms.core
info.magnolia.cms.core.search
info.magnolia.cms.core
info.magnolia.nodebuilder info.magnolia.cms.core
info.magnolia.cms.core.search
info.magnolia.cms.core
info.magnolia.nodebuilder.task info.magnolia.cms.core
info.magnolia.cms.core.search
info.magnolia.cms.core
info.magnolia.setup info.magnolia.cms.core
info.magnolia.cms.core.search
info.magnolia.cms.core
info.magnolia.setup.initial info.magnolia.cms.core
info.magnolia.cms.core.search
info.magnolia.cms.core

Explanation

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

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

Term Description
Number of Classes The number of concrete and abstract classes (and interfaces) in the package is an indicator of the extensibility of the package.
Afferent Couplings The number of other packages that depend upon classes within the package is an indicator of the package's responsibility.
Efferent Couplings The number of other packages that the classes in the package depend upon is an indicator of the package's independence.
Abstractness 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.
Instability 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.
Distance 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.
Cycles 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.