JarAnalyzer Analysis for Spring 2.5.6

Run with JarAnalyzer on 01/09/09


Summary

[summary] [jars] [cycles] [explanations]
Jar NameTotal ClassesAbstract ClassesPackagesAbstractnessEfferentAfferentInstabilityDistance
spring-aop.jar24878150.31250.290.40
spring-beans.jar29789150.301120.080.62
spring-context-support.jar571280.21510.830.04
spring-context.jar344107480.313100.230.46
spring-core.jar21292190.430130.000.57
spring-jdbc.jar24581150.33430.570.10
spring-jms.jar13528130.21501.000.21
spring-orm.jar29346140.16710.880.04
spring-test.jar11042150.38801.000.38
spring-tx.jar18549200.26450.440.30
spring-web.jar13334130.26440.500.24
spring-webmvc-portlet.jar892980.33510.830.16
spring-webmvc-struts.jar20620.30501.000.30
spring-webmvc.jar24580270.33530.630.04

Jars

[summary] [jars] [cycles] [explanations]

spring-aop.jar

Afferent Couplings: 5Efferent Couplings: 2Abstractness: 0.31Instability: 0.29Distance: 0.40
Uses JarsUsed by JarsCycles With
spring-core.jar
spring-beans.jar
spring-context.jar
spring-jms.jar
spring-orm.jar
spring-tx.jar
spring-web.jar
None
Packages within jarUnresolved Packages
org.springframework.aop
org.springframework.aop.aspectj
org.springframework.aop.aspectj.annotation
org.springframework.aop.aspectj.autoproxy
org.springframework.aop.config
org.springframework.aop.framework
org.springframework.aop.framework.adapter
org.springframework.aop.framework.autoproxy
org.springframework.aop.framework.autoproxy.target
org.springframework.aop.interceptor
org.springframework.aop.scope
org.springframework.aop.support
org.springframework.aop.support.annotation
org.springframework.aop.target
org.springframework.aop.target.dynamic
org.aopalliance.aop
org.aopalliance.intercept
org.aspectj.lang
org.aspectj.weaver.tools
org.aspectj.weaver.patterns
org.aspectj.weaver
org.aspectj.weaver.reflect
org.apache.commons.logging
org.aspectj.bridge
org.aspectj.lang.reflect
org.aspectj.runtime.internal
org.aspectj.weaver.ast
org.aspectj.weaver.internal.tools
org.aspectj.lang.annotation
org.aspectj.util
net.sf.cglib.proxy
net.sf.cglib.transform.impl
net.sf.cglib.core
com.jamonapi
org.apache.commons.pool.impl
org.apache.commons.pool

spring-beans.jar

Afferent Couplings: 12Efferent Couplings: 1Abstractness: 0.30Instability: 0.08Distance: 0.62
Uses JarsUsed by JarsCycles With
spring-core.jar
spring-aop.jar
spring-context-support.jar
spring-context.jar
spring-jdbc.jar
spring-jms.jar
spring-orm.jar
spring-test.jar
spring-tx.jar
spring-web.jar
spring-webmvc-portlet.jar
spring-webmvc-struts.jar
spring-webmvc.jar
None
Packages within jarUnresolved Packages
org.springframework.beans
org.springframework.beans.annotation
org.springframework.beans.factory
org.springframework.beans.factory.access
org.springframework.beans.factory.access.el
org.springframework.beans.factory.annotation
org.springframework.beans.factory.config
org.springframework.beans.factory.generic
org.springframework.beans.factory.parsing
org.springframework.beans.factory.serviceloader
org.springframework.beans.factory.support
org.springframework.beans.factory.wiring
org.springframework.beans.factory.xml
org.springframework.beans.propertyeditors
org.springframework.beans.support
org.apache.commons.logging
net.sf.cglib.proxy

spring-context-support.jar

Afferent Couplings: 1Efferent Couplings: 5Abstractness: 0.21Instability: 0.83Distance: 0.04
Uses JarsUsed by JarsCycles With
spring-beans.jar
spring-core.jar
spring-context.jar
spring-jdbc.jar
spring-tx.jar
spring-webmvc.jar
None
Packages within jarUnresolved Packages
org.springframework.cache.ehcache
org.springframework.mail
org.springframework.mail.javamail
org.springframework.scheduling.commonj
org.springframework.scheduling.quartz
org.springframework.ui.freemarker
org.springframework.ui.jasperreports
org.springframework.ui.velocity
net.sf.ehcache
net.sf.ehcache.constructs.blocking
org.apache.commons.logging
net.sf.ehcache.store
net.sf.ehcache.event
net.sf.ehcache.bootstrap
commonj.timers
commonj.work
org.quartz
org.quartz.spi
org.quartz.utils
org.quartz.impl.jdbcjobstore
org.quartz.xml
org.quartz.impl
org.quartz.simpl
freemarker.template
freemarker.cache
net.sf.jasperreports.engine
net.sf.jasperreports.engine.data
net.sf.jasperreports.engine.export
org.apache.velocity.runtime.log
org.apache.velocity.runtime
org.apache.velocity.exception
org.apache.velocity.runtime.resource.loader
org.apache.commons.collections
org.apache.velocity.runtime.resource
org.apache.velocity.app
org.apache.velocity

spring-context.jar

Afferent Couplings: 10Efferent Couplings: 3Abstractness: 0.31Instability: 0.23Distance: 0.46
Uses JarsUsed by JarsCycles With
spring-beans.jar
spring-core.jar
spring-aop.jar
spring-context-support.jar
spring-jdbc.jar
spring-jms.jar
spring-orm.jar
spring-test.jar
spring-tx.jar
spring-web.jar
spring-webmvc-portlet.jar
spring-webmvc-struts.jar
spring-webmvc.jar
None
Packages within jarUnresolved Packages
org.springframework.context
org.springframework.context.access
org.springframework.context.annotation
org.springframework.context.config
org.springframework.context.event
org.springframework.context.i18n
org.springframework.context.support
org.springframework.context.weaving
org.springframework.ejb.access
org.springframework.ejb.config
org.springframework.ejb.interceptor
org.springframework.ejb.support
org.springframework.instrument.classloading
org.springframework.instrument.classloading.glassfish
org.springframework.instrument.classloading.oc4j
org.springframework.instrument.classloading.weblogic
org.springframework.jmx
org.springframework.jmx.access
org.springframework.jmx.export
org.springframework.jmx.export.annotation
org.springframework.jmx.export.assembler
org.springframework.jmx.export.metadata
org.springframework.jmx.export.naming
org.springframework.jmx.export.notification
org.springframework.jmx.support
org.springframework.jndi
org.springframework.jndi.support
org.springframework.remoting
org.springframework.remoting.rmi
org.springframework.remoting.soap
org.springframework.remoting.support
org.springframework.scheduling
org.springframework.scheduling.backportconcurrent
org.springframework.scheduling.concurrent
org.springframework.scheduling.support
org.springframework.scheduling.timer
org.springframework.scripting
org.springframework.scripting.bsh
org.springframework.scripting.config
org.springframework.scripting.groovy
org.springframework.scripting.jruby
org.springframework.scripting.support
org.springframework.stereotype
org.springframework.ui
org.springframework.ui.context
org.springframework.ui.context.support
org.springframework.validation
org.springframework.validation.support
org.apache.commons.logging
org.aopalliance.intercept
org.aspectj.weaver.loadtime
org.springframework.instrument
oracle.classloader.util
org.aopalliance.aop
edu.emory.mathcs.backport.java.util.concurrent
bsh
groovy.lang
org.codehaus.groovy.control
org.jruby.exceptions
org.jruby
org.jruby.runtime.builtin
org.jruby.javasupport
org.jruby.runtime
org.jruby.ast
net.sf.cglib.proxy
net.sf.cglib.core
net.sf.cglib.asm

spring-core.jar

Afferent Couplings: 13Efferent Couplings: 0Abstractness: 0.43Instability: 0.00Distance: 0.57
Uses JarsUsed by JarsCycles With
Nonespring-aop.jar
spring-beans.jar
spring-context-support.jar
spring-context.jar
spring-jdbc.jar
spring-jms.jar
spring-orm.jar
spring-test.jar
spring-tx.jar
spring-web.jar
spring-webmvc-portlet.jar
spring-webmvc-struts.jar
spring-webmvc.jar
None
Packages within jarUnresolved Packages
org.springframework.core
org.springframework.core.annotation
org.springframework.core.enums
org.springframework.core.io
org.springframework.core.io.support
org.springframework.core.style
org.springframework.core.task
org.springframework.core.task.support
org.springframework.core.type
org.springframework.core.type.classreading
org.springframework.core.type.filter
org.springframework.metadata
org.springframework.metadata.commons
org.springframework.util
org.springframework.util.comparator
org.springframework.util.xml
org.springframework.asm
org.springframework.asm.signature
org.springframework.asm.commons
edu.emory.mathcs.backport.java.util.concurrent
org.apache.commons.collections.map
org.apache.commons.collections
org.apache.commons.logging
org.aspectj.weaver
org.aspectj.weaver.patterns
org.aspectj.weaver.bcel
org.aspectj.bridge
org.apache.commons.attributes
org.apache.log4j.xml
org.apache.log4j

spring-jdbc.jar

Afferent Couplings: 3Efferent Couplings: 4Abstractness: 0.33Instability: 0.57Distance: 0.10
Uses JarsUsed by JarsCycles With
spring-tx.jar
spring-beans.jar
spring-core.jar
spring-context.jar
spring-context-support.jar
spring-orm.jar
spring-test.jar
None
Packages within jarUnresolved Packages
org.springframework.jdbc
org.springframework.jdbc.core
org.springframework.jdbc.core.metadata
org.springframework.jdbc.core.namedparam
org.springframework.jdbc.core.simple
org.springframework.jdbc.core.support
org.springframework.jdbc.datasource
org.springframework.jdbc.datasource.lookup
org.springframework.jdbc.object
org.springframework.jdbc.support
org.springframework.jdbc.support.incrementer
org.springframework.jdbc.support.lob
org.springframework.jdbc.support.nativejdbc
org.springframework.jdbc.support.rowset
org.springframework.jdbc.support.xml
org.apache.commons.logging
com.mchange.v2.c3p0
org.enhydra.jdbc.core

spring-jms.jar

Afferent Couplings: 0Efferent Couplings: 5Abstractness: 0.21Instability: 1.00Distance: 0.21
Uses JarsUsed by JarsCycles With
spring-core.jar
spring-beans.jar
spring-tx.jar
spring-context.jar
spring-aop.jar
NoneNone
Packages within jarUnresolved Packages
org.springframework.jms
org.springframework.jms.config
org.springframework.jms.connection
org.springframework.jms.core
org.springframework.jms.core.support
org.springframework.jms.listener
org.springframework.jms.listener.adapter
org.springframework.jms.listener.endpoint
org.springframework.jms.listener.serversession
org.springframework.jms.remoting
org.springframework.jms.support
org.springframework.jms.support.converter
org.springframework.jms.support.destination
org.apache.commons.logging
org.apache.commons.pool
org.apache.commons.pool.impl
org.aopalliance.intercept

spring-orm.jar

Afferent Couplings: 1Efferent Couplings: 7Abstractness: 0.16Instability: 0.88Distance: 0.04
Uses JarsUsed by JarsCycles With
spring-tx.jar
spring-beans.jar
spring-jdbc.jar
spring-core.jar
spring-context.jar
spring-web.jar
spring-aop.jar
spring-test.jar
None
Packages within jarUnresolved Packages
org.springframework.orm
org.springframework.orm.hibernate3
org.springframework.orm.hibernate3.annotation
org.springframework.orm.hibernate3.support
org.springframework.orm.ibatis
org.springframework.orm.ibatis.support
org.springframework.orm.jdo
org.springframework.orm.jdo.support
org.springframework.orm.jpa
org.springframework.orm.jpa.persistenceunit
org.springframework.orm.jpa.support
org.springframework.orm.jpa.vendor
org.springframework.orm.toplink
org.springframework.orm.toplink.support
org.hibernate
org.apache.commons.logging
org.hibernate.engine
org.hibernate.type
org.hibernate.exception
org.aopalliance.intercept
org.hibernate.criterion
org.hibernate.transform
org.hibernate.classic
org.hibernate.event
org.hibernate.impl
org.hibernate.cache
org.hibernate.connection
org.hibernate.util
org.hibernate.dialect
org.hibernate.cfg
org.hibernate.tool.hbm2ddl
org.hibernate.transaction
org.hibernate.context
org.hibernate.jdbc
org.hibernate.usertype
org.hibernate.event.def
org.hibernate.persister.entity
com.ibatis.sqlmap.client
com.ibatis.sqlmap.engine.builder.xml
com.ibatis.sqlmap.engine.transaction
com.ibatis.common.xml
com.ibatis.sqlmap.engine.impl
com.ibatis.sqlmap.client.event
com.ibatis.common.util
com.ibatis.sqlmap.engine.type
org.eclipse.persistence.sessions
org.eclipse.persistence.internal.sessions
org.eclipse.persistence.jpa
org.eclipse.persistence.internal.databaseaccess
org.hibernate.ejb
org.apache.openjpa.persistence
oracle.toplink.essentials.sessions
oracle.toplink.essentials.internal.sessions
oracle.toplink.essentials.ejb.cmp3
oracle.toplink.essentials.internal.databaseaccess
oracle.toplink.sessions
oracle.toplink.publicinterface
oracle.toplink.exceptions
oracle.toplink.jndi
oracle.toplink.tools.sessionconfiguration
oracle.toplink.tools.sessionmanagement
oracle.toplink.threetier
oracle.toplink.sessionbroker
oracle.toplink.internal.databaseaccess
oracle.toplink.queryframework
oracle.toplink.expressions
oracle.toplink.logging

spring-test.jar

Afferent Couplings: 0Efferent Couplings: 8Abstractness: 0.38Instability: 1.00Distance: 0.38
Uses JarsUsed by JarsCycles With
spring-context.jar
spring-core.jar
spring-webmvc.jar
spring-webmvc-portlet.jar
spring-beans.jar
spring-jdbc.jar
spring-tx.jar
spring-orm.jar
NoneNone
Packages within jarUnresolved Packages
org.springframework.mock.jndi
org.springframework.mock.web
org.springframework.mock.web.portlet
org.springframework.test
org.springframework.test.annotation
org.springframework.test.context
org.springframework.test.context.junit38
org.springframework.test.context.junit4
org.springframework.test.context.support
org.springframework.test.context.testng
org.springframework.test.context.transaction
org.springframework.test.jdbc
org.springframework.test.jpa
org.springframework.test.util
org.springframework.test.web
org.apache.commons.logging
org.apache.taglibs.standard.lang.support
junit.framework
org.junit.runner
org.junit.internal.runners
org.junit.runner.notification
org.junit
org.testng
org.testng.annotations
org.aspectj.weaver.loadtime

spring-tx.jar

Afferent Couplings: 5Efferent Couplings: 4Abstractness: 0.26Instability: 0.44Distance: 0.30
Uses JarsUsed by JarsCycles With
spring-core.jar
spring-aop.jar
spring-beans.jar
spring-context.jar
spring-context-support.jar
spring-jdbc.jar
spring-jms.jar
spring-orm.jar
spring-test.jar
None
Packages within jarUnresolved Packages
org.springframework.dao
org.springframework.dao.annotation
org.springframework.dao.support
org.springframework.jca.cci
org.springframework.jca.cci.connection
org.springframework.jca.cci.core
org.springframework.jca.cci.core.support
org.springframework.jca.cci.object
org.springframework.jca.context
org.springframework.jca.endpoint
org.springframework.jca.support
org.springframework.jca.work
org.springframework.jca.work.glassfish
org.springframework.jca.work.jboss
org.springframework.transaction
org.springframework.transaction.annotation
org.springframework.transaction.config
org.springframework.transaction.interceptor
org.springframework.transaction.jta
org.springframework.transaction.support
org.aopalliance.aop
org.apache.commons.logging
org.aopalliance.intercept
org.objectweb.jotm
com.ibm.wsspi.uow

spring-web.jar

Afferent Couplings: 4Efferent Couplings: 4Abstractness: 0.26Instability: 0.50Distance: 0.24
Uses JarsUsed by JarsCycles With
spring-context.jar
spring-core.jar
spring-beans.jar
spring-aop.jar
spring-orm.jar
spring-webmvc-portlet.jar
spring-webmvc-struts.jar
spring-webmvc.jar
None
Packages within jarUnresolved Packages
org.springframework.remoting.caucho
org.springframework.remoting.httpinvoker
org.springframework.remoting.jaxrpc
org.springframework.remoting.jaxrpc.support
org.springframework.remoting.jaxws
org.springframework.web
org.springframework.web.context
org.springframework.web.context.request
org.springframework.web.context.support
org.springframework.web.filter
org.springframework.web.jsf
org.springframework.web.jsf.el
org.springframework.web.util
com.caucho.burlap.client
org.aopalliance.intercept
com.caucho.burlap.server
com.caucho.burlap.io
com.caucho.hessian.io
com.caucho.hessian.server
org.apache.commons.logging
com.caucho.hessian.client
org.apache.commons.httpclient
org.apache.commons.httpclient.methods
org.apache.commons.httpclient.params
org.apache.axis.encoding.ser
org.aopalliance.aop
org.apache.log4j
org.apache.taglibs.standard.lang.support

spring-webmvc-portlet.jar

Afferent Couplings: 1Efferent Couplings: 5Abstractness: 0.33Instability: 0.83Distance: 0.16
Uses JarsUsed by JarsCycles With
spring-beans.jar
spring-core.jar
spring-context.jar
spring-webmvc.jar
spring-web.jar
spring-test.jar
None
Packages within jarUnresolved Packages
org.springframework.web.portlet
org.springframework.web.portlet.bind
org.springframework.web.portlet.context
org.springframework.web.portlet.handler
org.springframework.web.portlet.multipart
org.springframework.web.portlet.mvc
org.springframework.web.portlet.mvc.annotation
org.springframework.web.portlet.util
org.apache.commons.logging
org.apache.commons.fileupload.portlet
org.apache.commons.fileupload
org.apache.commons.fileupload.disk

spring-webmvc-struts.jar

Afferent Couplings: 0Efferent Couplings: 5Abstractness: 0.30Instability: 1.00Distance: 0.30
Uses JarsUsed by JarsCycles With
spring-web.jar
spring-context.jar
spring-beans.jar
spring-webmvc.jar
spring-core.jar
NoneNone
Packages within jarUnresolved Packages
org.springframework.web.servlet.view.tiles
org.springframework.web.struts
org.apache.struts.tiles
org.apache.commons.logging
org.apache.struts.action
org.apache.struts.config
org.apache.struts.actions
org.apache.commons.beanutils
org.apache.struts.util

spring-webmvc.jar

Afferent Couplings: 3Efferent Couplings: 5Abstractness: 0.33Instability: 0.63Distance: 0.04
Uses JarsUsed by JarsCycles With
spring-context.jar
spring-web.jar
spring-beans.jar
spring-core.jar
spring-context-support.jar
spring-test.jar
spring-webmvc-portlet.jar
spring-webmvc-struts.jar
None
Packages within jarUnresolved Packages
org.springframework.web.bind
org.springframework.web.bind.annotation
org.springframework.web.bind.annotation.support
org.springframework.web.bind.support
org.springframework.web.multipart
org.springframework.web.multipart.commons
org.springframework.web.multipart.support
org.springframework.web.servlet
org.springframework.web.servlet.handler
org.springframework.web.servlet.handler.metadata
org.springframework.web.servlet.i18n
org.springframework.web.servlet.mvc
org.springframework.web.servlet.mvc.annotation
org.springframework.web.servlet.mvc.multiaction
org.springframework.web.servlet.mvc.support
org.springframework.web.servlet.mvc.throwaway
org.springframework.web.servlet.support
org.springframework.web.servlet.tags
org.springframework.web.servlet.tags.form
org.springframework.web.servlet.theme
org.springframework.web.servlet.view
org.springframework.web.servlet.view.document
org.springframework.web.servlet.view.freemarker
org.springframework.web.servlet.view.jasperreports
org.springframework.web.servlet.view.tiles2
org.springframework.web.servlet.view.velocity
org.springframework.web.servlet.view.xslt
org.apache.commons.logging
org.apache.commons.fileupload.disk
org.apache.commons.fileupload
org.apache.commons.fileupload.servlet
org.apache.commons.attributes
org.apache.poi.hssf.usermodel
org.apache.poi.poifs.filesystem
jxl
jxl.write
com.lowagie.text.pdf
com.lowagie.text
freemarker.template
freemarker.ext.jsp
freemarker.cache
freemarker.ext.servlet
freemarker.core
net.sf.jasperreports.engine
net.sf.jasperreports.engine.design
net.sf.jasperreports.engine.util
net.sf.jasperreports.engine.xml
net.sf.jasperreports.engine.export
org.apache.tiles.servlet.context
org.apache.tiles.preparer
org.apache.tiles.context
org.apache.tiles
org.apache.tiles.locale.impl
org.apache.tiles.web.util
org.apache.tiles.factory
org.apache.tiles.access
org.apache.velocity.app
org.apache.velocity.exception
org.apache.velocity.context
org.apache.velocity
org.apache.velocity.tools.view.context
org.apache.velocity.tools.view.tools
org.apache.velocity.tools.view
org.apache.velocity.tools.view.servlet
org.apache.velocity.tools.generic
org.apache.velocity.app.tools

Cycles

[summary] [jars] [cycles] [explanations]

spring-aop.jar has cycles with

None

spring-beans.jar has cycles with

None

spring-context-support.jar has cycles with

None

spring-context.jar has cycles with

None

spring-core.jar has cycles with

None

spring-jdbc.jar has cycles with

None

spring-jms.jar has cycles with

None

spring-orm.jar has cycles with

None

spring-test.jar has cycles with

None

spring-tx.jar has cycles with

None

spring-web.jar has cycles with

None

spring-webmvc-portlet.jar has cycles with

None

spring-webmvc-struts.jar has cycles with

None

spring-webmvc.jar has cycles with

None


Explanations

[summary] [jars] [cycles] [explanations]

The following explanations are for quick reference. More detailed information can be found in the JarAnalyzer documentation.

Number of Classes

The number of concrete and abstract classes (and interfaces) in the jar is an indicator of the extensibility of the jar.

Number of Packages

The number of packages in the jar.

Afferent Couplings

The number of other jars that depend upon classes within the jar is an indicator of the jar's responsibility.

Efferent Couplings

The number of other jars that the classes in the jar depend upon is an indicator of the jar's independence.

Abstractness

The ratio of the number of abstract classes (and interfaces) in the analyzed jar to the total number of classes in the analyzed jar.

The range for this metric is 0 to 1, with A=0 indicating a completely concrete jar and A=1 indicating a completely abstract jar.

Instability

The ratio of efferent coupling (Ce) to total coupling (Ce / (Ce + Ca)). This metric is an indicator of the jar's resilience to change.

The range for this metric is 0 to 1, with I=0 indicating a completely stable jar and I=1 indicating a completely instable jar.

Distance

The perpendicular distance of a jar from the idealized line A + I = 1. This metric is an indicator of the jar's balance between abstractness and stability.

A jar squarely on the main sequence is optimally balanced with respect to its abstractness and stability. Ideal jars 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 jar that is coincident with the main sequence and D=1 indicating a jar that is as far from the main sequence as possible.

Unresolved Packages

Packages not found in any of the jars analyzed. These can be filtered from output by specifying the packages to exlude in the Filter.properties file. Conversely, you can include jars containing these packages in the directory being analyzed.

These packages are excluded from all calculations and adding the jars containing these packages will result in modified metrics.