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
org.imageconverter 1 1 0 0 2 0.0% 100.0% 0.0% 1
org.imageconverter.config 3 3 0 0 23 0.0% 100.0% 0.0% 1
org.imageconverter.config.filter 1 1 0 0 6 0.0% 100.0% 0.0% 1
org.imageconverter.config.health 3 3 0 0 16 0.0% 100.0% 0.0% 1
org.imageconverter.config.security 4 4 0 0 16 0.0% 100.0% 0.0% 1
org.imageconverter.controller 1 1 0 0 6 0.0% 100.0% 0.0% 1
org.imageconverter.domain.conversion 4 3 1 2 15 25.0% 88.0% 13.0% 1
org.imageconverter.domain.imagetype 2 1 1 1 8 50.0% 89.0% 39.0% 1
org.imageconverter.infra 1 1 0 0 8 0.0% 100.0% 0.0% 1
org.imageconverter.infra.exception 13 12 1 2 6 8.0% 75.0% 17.0% 1
org.imageconverter.util 1 1 0 5 5 0.0% 50.0% 50.0% 1
org.imageconverter.util.controllers.imageconverter 2 1 1 0 2 50.0% 100.0% 50.0% 1
org.imageconverter.util.controllers.imagetype 1 1 0 1 1 0.0% 50.0% 50.0% 1
org.imageconverter.util.jpaconverters 1 1 0 0 4 0.0% 100.0% 0.0% 1
org.imageconverter.util.logging 1 0 1 0 4 100.0% 100.0% 100.0% 1
org.imageconverter.util.openapi 1 0 1 0 2 100.0% 100.0% 100.0% 1
org.imageconverter.util.openapi.imageconverter 9 0 9 0 2 100.0% 100.0% 100.0% 1
org.imageconverter.util.openapi.imagetype 15 0 15 0 2 100.0% 100.0% 100.0% 1
org.imageconverter.util.validation 1 1 0 0 6 0.0% 100.0% 0.0% 1

Packages

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

org.imageconverter

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 2 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.imageconverter.ImageServiceApplication
None java.lang
org.springframework.boot

org.imageconverter.config

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 23 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.imageconverter.config.ImageConfig
org.imageconverter.config.LogPerformanceConfiguration
org.imageconverter.config.WebConfig
None brave.sampler
com.fasterxml.jackson.annotation
com.fasterxml.jackson.databind
com.fasterxml.jackson.databind.json
com.fasterxml.jackson.datatype.jsr310
com.fasterxml.jackson.datatype.jsr310.ser
java.lang
java.nio.file
java.time.format
net.sourceforge.tess4j
org.imageconverter.application
org.imageconverter.util
org.imageconverter.util.performance
org.springframework.aop
org.springframework.aop.aspectj
org.springframework.aop.support
org.springframework.context
org.springframework.context.support
org.springframework.validation
org.springframework.validation.beanvalidation
org.springframework.web.multipart.commons
org.springframework.web.servlet.config.annotation
org.springframework.web.util

org.imageconverter.config.filter

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 org.imageconverter.config.filter.CsrfLoggerFilter
None java.io
java.util
javax.servlet
javax.servlet.http
org.springframework.security.web.csrf
org.springframework.web.filter

org.imageconverter.config.health

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 16 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.imageconverter.config.health.TesseractHealthService
org.imageconverter.config.health.TesseractInfoService
org.imageconverter.config.health.TesseractInfoService$TesseractDetailsData
None com.fasterxml.jackson.annotation
java.awt.image
java.io
java.lang
java.util
javax.imageio
net.sourceforge.tess4j
org.apache.commons.collections4
org.apache.commons.lang3
org.apache.commons.lang3.exception
org.imageconverter.util
org.springframework.beans.factory
org.springframework.boot.actuate.health
org.springframework.cloud.endpoint
org.springframework.core.env
org.springframework.core.io

org.imageconverter.config.security

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 16 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.imageconverter.config.security.RestAuthenticationSuccessHandler
org.imageconverter.config.security.SecurityApplicationInitializer
org.imageconverter.config.security.SecurityConfig
org.imageconverter.config.security.SecurityConfig$FaviconController
None java.lang
java.util
javax.servlet
javax.servlet.http
org.springframework.security.core
org.springframework.security.core.userdetails
org.springframework.security.crypto.factory
org.springframework.security.crypto.password
org.springframework.security.provisioning
org.springframework.security.web.authentication
org.springframework.security.web.context
org.springframework.security.web.csrf
org.springframework.security.web.firewall
org.springframework.security.web.savedrequest
org.springframework.util
org.springframework.web.multipart.support

org.imageconverter.controller

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 org.imageconverter.controller.ImageTypeRestController
None java.lang
javax.servlet.http
org.imageconverter.application
org.imageconverter.util.controllers.imagetype
org.springframework.data.domain
org.springframework.data.jpa.domain

org.imageconverter.domain.conversion

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 15 25.0% 88.0% 13.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.imageconverter.domain.conversion.ImageConversionRepository
org.imageconverter.domain.conversion.ExecutionType
org.imageconverter.domain.conversion.ImageConversion
org.imageconverter.domain.conversion.TesseractService
org.imageconverter.util.controllers.imageconverter
org.imageconverter.util.jpaconverters
java.awt
java.io
java.lang
java.time
java.util
javax.imageio
net.sourceforge.tess4j
org.apache.commons.lang3
org.apache.commons.lang3.exception
org.imageconverter.domain.imagetype
org.imageconverter.infra.exception
org.imageconverter.util
org.springframework.beans.factory
org.springframework.data.jpa.repository
org.springframework.data.repository

org.imageconverter.domain.imagetype

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 8 50.0% 89.0% 39.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.imageconverter.domain.imagetype.ImageTypeRespository
org.imageconverter.domain.imagetype.ImageType
org.imageconverter.domain.conversion
java.lang
java.time
java.util
javax.validation
org.apache.commons.lang3
org.imageconverter.util
org.springframework.data.jpa.repository
org.springframework.data.repository

org.imageconverter.infra

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 org.imageconverter.infra.RestExceptionHandler
None java.lang
java.util
javax.validation
org.apache.commons.lang3
org.imageconverter.infra.exception
org.springframework.context
org.springframework.http
org.springframework.web.context.request

org.imageconverter.infra.exception

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 6 8.0% 75.0% 17.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.imageconverter.infra.exception.BaseApplicationException
org.imageconverter.infra.exception.ConversionException
org.imageconverter.infra.exception.CsvFileGenerationException
org.imageconverter.infra.exception.CsvFileNoDataException
org.imageconverter.infra.exception.ElementAlreadyExistsException
org.imageconverter.infra.exception.ElementConflictException
org.imageconverter.infra.exception.ElementInvalidException
org.imageconverter.infra.exception.ElementNotFoundException
org.imageconverter.infra.exception.ElementWithIdNotFoundException
org.imageconverter.infra.exception.ImageConvertServiceException
org.imageconverter.infra.exception.ServiceUnavailableException
org.imageconverter.infra.exception.TesseractConversionException
org.imageconverter.infra.exception.TesseractNotSetException
org.imageconverter.domain.conversion
org.imageconverter.infra
java.lang
java.text
org.apache.commons.lang3
org.imageconverter.util
org.springframework.context
org.springframework.context.i18n

org.imageconverter.util

Afferent Couplings Efferent Couplings Abstractness Instability Distance
5 5 0.0% 50.0% 50.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.imageconverter.util.BeanUtil
org.imageconverter.config
org.imageconverter.config.health
org.imageconverter.domain.conversion
org.imageconverter.domain.imagetype
org.imageconverter.infra.exception
java.lang
java.util
org.springframework.beans.factory
org.springframework.context
org.springframework.core.env

org.imageconverter.util.controllers.imageconverter

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 2 50.0% 100.0% 50.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.imageconverter.util.controllers.imageconverter.ImageConverterRequestInterface
org.imageconverter.util.controllers.imageconverter.ImageConverterConst
None java.lang
org.imageconverter.domain.conversion

org.imageconverter.util.controllers.imagetype

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 1 0.0% 50.0% 50.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.imageconverter.util.controllers.imagetype.ImageTypeConst
org.imageconverter.controller
java.lang

org.imageconverter.util.jpaconverters

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 org.imageconverter.util.jpaconverters.ExcutionTypeConverter
None java.lang
javax.persistence
org.apache.commons.lang3
org.imageconverter.domain.conversion

org.imageconverter.util.logging

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 4 100.0% 100.0% 100.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.imageconverter.util.logging.Loggable
None None java.lang
java.lang.annotation
java.time.temporal
org.springframework.boot.logging

org.imageconverter.util.openapi

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 2 100.0% 100.0% 100.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.imageconverter.util.openapi.OpenApiResponseError500
None None java.lang
java.lang.annotation

org.imageconverter.util.openapi.imageconverter

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 2 100.0% 100.0% 100.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.imageconverter.util.openapi.imageconverter.ImageConverterRestGetByIdOpenApi
org.imageconverter.util.openapi.imageconverter.ImageConverterRestGetOpenApi
org.imageconverter.util.openapi.imageconverter.ImageConverterRestPostAreaOpenApi
org.imageconverter.util.openapi.imageconverter.ImageConverterRestPostOpenApi
org.imageconverter.util.openapi.imageconverter.OpenApiResponse201
org.imageconverter.util.openapi.imageconverter.OpenApiResponseError404
org.imageconverter.util.openapi.imageconverter.OpenApiResponseGetBySearchError400
org.imageconverter.util.openapi.imageconverter.OpenApiResponseRestPostAreaError400
org.imageconverter.util.openapi.imageconverter.OpenApiResponseRestPostError409
None None java.lang
java.lang.annotation

org.imageconverter.util.openapi.imagetype

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 2 100.0% 100.0% 100.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.imageconverter.util.openapi.imagetype.CreateImageTypeRequestBody
org.imageconverter.util.openapi.imagetype.ImageTypeRestDeleteOpenApi
org.imageconverter.util.openapi.imagetype.ImageTypeRestGet
org.imageconverter.util.openapi.imagetype.ImageTypeRestGetByIdOpenApi
org.imageconverter.util.openapi.imagetype.ImageTypeRestPostOpenApi
org.imageconverter.util.openapi.imagetype.ImageTypeRestPutOpenApi
org.imageconverter.util.openapi.imagetype.OpenApiResponse201
org.imageconverter.util.openapi.imagetype.OpenApiResponseError404
org.imageconverter.util.openapi.imagetype.OpenApiResponseGetBySearchError400
org.imageconverter.util.openapi.imagetype.OpenApiResponseRestDelete204
org.imageconverter.util.openapi.imagetype.OpenApiResponseRestDeleteError409
org.imageconverter.util.openapi.imagetype.OpenApiResponseRestPostError400
org.imageconverter.util.openapi.imagetype.OpenApiResponseRestPostError409
org.imageconverter.util.openapi.imagetype.OpenApiResponseRestUpdate204
org.imageconverter.util.openapi.imagetype.UpdateImageTypeRequestBody
None None java.lang
java.lang.annotation

org.imageconverter.util.validation

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 org.imageconverter.util.validation.ValidatorAspect
None java.lang
java.util
javax.validation
javax.validation.executable
org.aspectj.lang
org.aspectj.lang.reflect

Cycles

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

There are no cyclic dependencies.

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.