Fork me on GitHub

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
io.extact.rms.platform.config 2 1 1 0 5 50.0% 100.0% 50.0% 1
io.extact.rms.platform.debug 2 1 1 0 6 50.0% 100.0% 50.0% 1
io.extact.rms.platform.debug.ext 1 1 0 0 3 0.0% 100.0% 0.0% 1
io.extact.rms.platform.env 2 2 0 0 4 0.0% 100.0% 0.0% 1
io.extact.rms.platform.extension 5 3 2 0 2 40.0% 100.0% 40.0% 1
io.extact.rms.platform.health 3 2 1 0 5 33.0% 100.0% 33.0% 1
io.extact.rms.platform.jaxrs.converter 8 8 0 0 11 0.0% 100.0% 0.0% 1
io.extact.rms.platform.jaxrs.mapper 1 1 0 0 5 0.0% 100.0% 0.0% 1
io.extact.rms.platform.jwt 3 3 0 2 7 0.0% 78.0% 22.0% 1
io.extact.rms.platform.jwt.consumer 4 2 2 2 12 50.0% 86.0% 36.0% 1
io.extact.rms.platform.jwt.impl.jose4j 3 3 0 0 12 0.0% 100.0% 0.0% 1
io.extact.rms.platform.jwt.provider 4 0 4 2 3 100.0% 60.000004% 60.000004% 1
io.extact.rms.platform.role 2 2 0 0 8 0.0% 100.0% 0.0% 1
io.extact.rms.platform.stopbugs 1 0 1 0 2 100.0% 100.0% 100.0% 1
io.extact.rms.platform.util 1 1 0 0 6 0.0% 100.0% 0.0% 1
io.extact.rms.platform.validate 5 2 3 0 11 60.000004% 100.0% 60.000004% 1

Packages

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

io.extact.rms.platform.config

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 5 50.0% 100.0% 50.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
io.extact.rms.platform.config.MpConfigFactory
io.extact.rms.platform.config.ExternalPathConfigProvider
None java.lang
java.lang.reflect
java.net
java.util
org.eclipse.microprofile.config.spi

io.extact.rms.platform.debug

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 6 50.0% 100.0% 50.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
io.extact.rms.platform.debug.DebugSleepInterceptor$DebugSleep
io.extact.rms.platform.debug.DebugSleepInterceptor
None jakarta.interceptor
java.lang
java.lang.annotation
java.util
org.eclipse.microprofile.config
org.slf4j

io.extact.rms.platform.debug.ext

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 3 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None io.extact.rms.platform.debug.ext.SessionLogBridge
None java.lang
org.eclipse.persistence.platform.server
org.slf4j

io.extact.rms.platform.env

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 4 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None io.extact.rms.platform.env.Environment
io.extact.rms.platform.env.MainJarInfo$FindJarMatcher
None java.lang
java.util.function
java.util.regex
org.eclipse.microprofile.config

io.extact.rms.platform.extension

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 2 40.0% 100.0% 40.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
io.extact.rms.platform.extension.ConfiguableScoped
io.extact.rms.platform.extension.EnabledIfRuntimeConfig
io.extact.rms.platform.extension.ConfiguredCdiBean
io.extact.rms.platform.extension.ConfiguredCdiBeanBinder$AliasKey
io.extact.rms.platform.extension.ConfiguredCdiBeanBinder$ConfiguredCdiBeansListBinder
None java.lang
java.lang.annotation

io.extact.rms.platform.health

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 5 33.0% 100.0% 33.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
io.extact.rms.platform.health.MemoryHealthCheck$MemoryUsageFunction
io.extact.rms.platform.health.MemoryEvaluateResource
io.extact.rms.platform.health.MemoryHealthCheck$EvaluateHolder
None jakarta.enterprise.event
java.lang
java.lang.management
java.util.function
org.slf4j

io.extact.rms.platform.jaxrs.converter

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 io.extact.rms.platform.jaxrs.converter.JsonbRmsConfig
io.extact.rms.platform.jaxrs.converter.LocalDateTimeSerializers
io.extact.rms.platform.jaxrs.converter.LocalDateTimeSerializers$LocaDateTimeDeserializer
io.extact.rms.platform.jaxrs.converter.LocalDateTimeSerializers$LocalDateTimeSerializer
io.extact.rms.platform.jaxrs.converter.ParamRmsConverterProvider
io.extact.rms.platform.jaxrs.converter.ParamRmsConverterProvider$LocalDateConverter
io.extact.rms.platform.jaxrs.converter.ParamRmsConverterProvider$LocalDateTimeConverter
io.extact.rms.platform.jaxrs.converter.RmsTypeParameterFeature
None jakarta.json.bind
jakarta.json.bind.serializer
jakarta.json.stream
jakarta.ws.rs.core
jakarta.ws.rs.ext
java.lang
java.lang.annotation
java.lang.reflect
java.time
java.time.format
org.eclipse.microprofile.config

io.extact.rms.platform.jaxrs.mapper

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 5 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None io.extact.rms.platform.jaxrs.mapper.UnhandledExceptionMapper
None jakarta.ws.rs
jakarta.ws.rs.core
jakarta.ws.rs.ext
java.lang
org.slf4j

io.extact.rms.platform.jwt

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 7 0.0% 78.0% 22.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None io.extact.rms.platform.jwt.JwtConfig
io.extact.rms.platform.jwt.JwtSecurityFilterFeature
io.extact.rms.platform.jwt.JwtValidateException
io.extact.rms.platform.jwt.consumer
io.extact.rms.platform.jwt.impl.jose4j
io.extact.rms.platform.jwt.consumer
io.extact.rms.platform.jwt.provider
jakarta.ws.rs.core
java.lang
java.security
java.util.function
org.eclipse.microprofile.config

io.extact.rms.platform.jwt.consumer

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 12 50.0% 86.0% 36.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
io.extact.rms.platform.jwt.consumer.Authenticated
io.extact.rms.platform.jwt.consumer.JsonWebTokenValidator
io.extact.rms.platform.jwt.consumer.JwtSecurityContext
io.extact.rms.platform.jwt.consumer.JwtValidateRequestFilter
io.extact.rms.platform.jwt
io.extact.rms.platform.jwt.impl.jose4j
io.extact.rms.platform.jwt
jakarta.ws.rs.container
jakarta.ws.rs.core
java.io
java.lang
java.lang.annotation
java.net
java.security
java.util
org.eclipse.microprofile.config
org.eclipse.microprofile.jwt
org.slf4j

io.extact.rms.platform.jwt.impl.jose4j

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 12 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None io.extact.rms.platform.jwt.impl.jose4j.Jose4PrivateSecretedTokenValidator
io.extact.rms.platform.jwt.impl.jose4j.Jose4jCallerPrincipal
io.extact.rms.platform.jwt.impl.jose4j.Jose4jJwtGenerator
None io.extact.rms.platform.jwt
io.extact.rms.platform.jwt.consumer
io.extact.rms.platform.jwt.provider
jakarta.security.enterprise
java.lang
java.util
org.eclipse.microprofile.config
org.eclipse.microprofile.jwt
org.jose4j.jws
org.jose4j.jwt
org.jose4j.jwt.consumer
org.jose4j.lang

io.extact.rms.platform.jwt.provider

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 3 100.0% 60.000004% 60.000004%
Abstract Classes Concrete Classes Used by Packages Uses Packages
io.extact.rms.platform.jwt.provider.GenerateToken
io.extact.rms.platform.jwt.provider.JsonWebTokenGenerator
io.extact.rms.platform.jwt.provider.JsonWebTokenGenerator$UserClaims
io.extact.rms.platform.jwt.provider.JsonWebTokenGenerator$UserClaimsFactory
None io.extact.rms.platform.jwt
io.extact.rms.platform.jwt.impl.jose4j
java.lang
java.lang.annotation
java.util

io.extact.rms.platform.role

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 io.extact.rms.platform.role.DenyAllRequestFilter
io.extact.rms.platform.role.RoleSecurityDynamicFeature
None jakarta.annotation.security
jakarta.ws.rs.container
jakarta.ws.rs.core
java.io
java.lang
java.lang.reflect
org.eclipse.microprofile.config
org.slf4j

io.extact.rms.platform.stopbugs

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 2 100.0% 100.0% 100.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
io.extact.rms.platform.stopbugs.SuppressFBWarnings
None None java.lang
java.lang.annotation

io.extact.rms.platform.util

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 6 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None io.extact.rms.platform.util.ResourceUtils$TargetFileCollector
None java.io
java.lang
java.nio.file
java.nio.file.attribute
java.util
java.util.function

io.extact.rms.platform.validate

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 11 60.000004% 100.0% 60.000004%
Abstract Classes Concrete Classes Used by Packages Uses Packages
io.extact.rms.platform.validate.ValidateGroup
io.extact.rms.platform.validate.ValidateParam
io.extact.rms.platform.validate.ValidateParamInterceptor$InnerValidator
io.extact.rms.platform.validate.ValidateParamInterceptor
io.extact.rms.platform.validate.ValidateParamInterceptor$InnerValidatorImpl
None jakarta.interceptor
jakarta.validation
jakarta.validation.bootstrap
jakarta.validation.executable
jakarta.validation.groups
jakarta.validation.metadata
java.lang
java.lang.annotation
java.lang.reflect
java.util
org.apache.commons.lang3

Cycles

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

Package Package Dependencies
io.extact.rms.platform.jwt io.extact.rms.platform.jwt.consumer
io.extact.rms.platform.jwt
io.extact.rms.platform.jwt.consumer io.extact.rms.platform.jwt
io.extact.rms.platform.jwt.consumer
io.extact.rms.platform.jwt.impl.jose4j io.extact.rms.platform.jwt
io.extact.rms.platform.jwt.consumer
io.extact.rms.platform.jwt

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.