JFox Service-Oriented Application Framework

##### Overview

- Goals
- Features
- Download
- News and Status
- Getting Started

##### Service

- Wiki
- Issue Tracking
- Forum

##### Search JFox Service-Oriented Application Framework

##### Project Documentation

- About JFox Service-Oriented Application Framework
- Project Info
- Project Reports
  - Project License
  - Unit Tests
  - Metrics
  - FAQs
  - PMD Report
  - Simian Report
  - Task List
  - Source Xref
  - Test Xref
  - Clover
- Development Process

## Metric Results

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

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

## Summary

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

Package | TC | AC | CC | AC | EC | A | I | D
--- | --- | --- | --- | --- | --- | --- | --- | ---
org.huihoo.jfox.soaf.container | 12 | 4 | 8 | 5 | 14 | 0.33 | 74% | 7%
org.huihoo.jfox.soaf.exception | 10 | 0 | 10 | 8 | 2 | 0 | 20% | 80%
org.huihoo.jfox.soaf.schema.config | 18 | 0 | 18 | 1 | 8 | 0 | 89% | 11%
org.huihoo.jfox.soaf.schema.service | 15 | 0 | 15 | 1 | 9 | 0 | 90% | 10%
org.huihoo.jfox.soaf.services.cache | 15 | 3 | 12 | 0 | 12 | 0.2 | 100% | 20%
org.huihoo.jfox.soaf.services.dao | 8 | 7 | 1 | 0 | 6 | 0.88 | 100% | 88%
org.huihoo.jfox.soaf.services.ejb | 4 | 2 | 2 | 2 | 16 | 0.5 | 89% | 39%
org.huihoo.jfox.soaf.services.jdbc | 7 | 2 | 5 | 1 | 16 | 0.29 | 94% | 23%
org.huihoo.jfox.soaf.services.mail | 4 | 2 | 2 | 0 | 8 | 0.5 | 100% | 50%
org.huihoo.jfox.soaf.services.naming | 2 | 1 | 1 | 0 | 8 | 0.5 | 100% | 50%
org.huihoo.jfox.soaf.services.persistence | 12 | 6 | 6 | 1 | 20 | 0.5 | 95% | 45%
org.huihoo.jfox.soaf.services.timer | 2 | 1 | 1 | 0 | 5 | 0.5 | 100% | 50%
org.huihoo.jfox.soaf.services.transaction | 2 | 1 | 1 | 1 | 7 | 0.5 | 88% | 38%
org.huihoo.jfox.soaf.services.useraccess.struts | 4 | 0 | 4 | 0 | 12 | 0 | 100% | 0%
org.huihoo.jfox.soaf.services.useraccess.velocity | 2 | 1 | 1 | 0 | 5 | 0.5 | 100% | 50%
org.huihoo.jfox.soaf.services.workflow | 2 | 1 | 1 | 0 | 7 | 0.5 | 100% | 50%
org.huihoo.jfox.soaf.services.ws.axis | 1 | 1 | 0 | 0 | 3 | 1 | 100% | 100%
org.huihoo.jfox.soaf.util.filter | 1 | 0 | 1 | 0 | 4 | 0 | 100% | 0%
org.huihoo.jfox.soaf.util.resource | 3 | 0 | 3 | 6 | 4 | 0 | 40% | 60%
org.huihoo.jfox.soaf.util.web | 1 | 0 | 1 | 0 | 6 | 0 | 100% | 0%

## Packages

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

### org.huihoo.jfox.soaf.container

Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance
--- | --- | --- | --- | ---
5 | 14 | 33% | 74% | 7%

Abstract Classes | Concrete Classes | Used by Packages | Uses Packages
--- | --- | --- | ---
InterceptorChain InterceptorManager ServiceEntry ServiceInterceptor | InterceptorChainImpl InterceptorManagerImpl MBeanServerInterceptor ManageableServiceContainer ServiceContainer ServiceContainerInterceptor ServiceFactory ServiceLoader | org.huihoo.jfox.soaf.schema.service org.huihoo.jfox.soaf.services.dao org.huihoo.jfox.soaf.services.jdbc org.huihoo.jfox.soaf.services.useraccess.struts org.huihoo.jfox.soaf.util.web | java.io java.lang java.util javax.management org.apache.commons.lang org.apache.commons.logging org.exolab.castor.xml org.huihoo.jfox.soaf.exception org.huihoo.jfox.soaf.schema.config org.huihoo.jfox.soaf.schema.service org.huihoo.jfox.soaf.util.resource org.picocontainer org.picocontainer.defaults org.xml.sax

### org.huihoo.jfox.soaf.exception

Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance
--- | --- | --- | --- | ---
8 | 2 | 0% | 20% | 80%

Abstract Classes | Concrete Classes | Used by Packages | Uses Packages
--- | --- | --- | ---
None | ApplicationException CacheServiceException DAOException DataSourceConfigurationException IbatisConfigurationException MailException NestedCheckedException NestedRuntimeException ServiceConfigurationException ServiceLocatorException | org.huihoo.jfox.soaf.container org.huihoo.jfox.soaf.services.cache org.huihoo.jfox.soaf.services.dao org.huihoo.jfox.soaf.services.ejb org.huihoo.jfox.soaf.services.jdbc org.huihoo.jfox.soaf.services.mail org.huihoo.jfox.soaf.services.persistence org.huihoo.jfox.soaf.services.useraccess.struts | java.io java.lang

### org.huihoo.jfox.soaf.schema.config

Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance
--- | --- | --- | --- | ---
1 | 8 | 0% | 89% | 11%

Abstract Classes | Concrete Classes | Used by Packages | Uses Packages
--- | --- | --- | ---
None | Configuration ConfigurationDescriptor ConfigurationDescriptor$1 ConfigurationDescriptor$2 ConfigurationEntry ConfigurationEntryDescriptor ConfigurationEntryDescriptor$1 ConfigurationEntryDescriptor$2 Interceptor InterceptorDescriptor InterceptorDescriptor$1 InterceptorDescriptor$2 ServiceConfiguration ServiceConfigurationDescriptor ServiceConfigurationDescriptor$1 SystemInterceptor SystemInterceptorDescriptor SystemInterceptorDescriptor$1 | org.huihoo.jfox.soaf.container | java.io java.lang java.util org.exolab.castor.mapping org.exolab.castor.xml org.exolab.castor.xml.util org.exolab.castor.xml.validators org.xml.sax

### org.huihoo.jfox.soaf.schema.service

Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance
--- | --- | --- | --- | ---
1 | 9 | 0% | 90% | 10%

Abstract Classes | Concrete Classes | Used by Packages | Uses Packages
--- | --- | --- | ---
None | Parameter ParameterDescriptor ParameterDescriptor$1 ParameterDescriptor$2 Service ServiceDescriptor ServiceDescriptor$1 ServiceEntry ServiceEntryDescriptor ServiceEntryDescriptor$1 ServiceEntryDescriptor$2 ServiceEntryDescriptor$3 ServiceEntryDescriptor$4 ServiceEntryDescriptor$5 ServiceEntryDescriptor$6 | org.huihoo.jfox.soaf.container | java.io java.lang java.util org.exolab.castor.mapping org.exolab.castor.xml org.exolab.castor.xml.util org.exolab.castor.xml.validators org.huihoo.jfox.soaf.container org.xml.sax

### org.huihoo.jfox.soaf.services.cache

Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance
--- | --- | --- | --- | ---
0 | 12 | 20% | 100% | 20%

Abstract Classes | Concrete Classes | Used by Packages | Uses Packages
--- | --- | --- | ---
CacheService CacheServiceManager CacheServiceProvider | CacheConstant CacheServiceManagerImpl EhCacheServiceImpl EhCacheServiceProvider HashMapCacheServiceImpl HashMapCacheServiceProvider JCSCacheServiceImpl JCSCacheServiceProvider OSCacheServiceImpl OSCacheServiceProvider SwarmCacheServiceImpl SwarmCacheServiceProvider | None | com.opensymphony.oscache.base com.opensymphony.oscache.general java.io java.lang java.util net.sf.ehcache net.sf.swarmcache org.apache.commons.logging org.apache.jcs org.apache.jcs.access.exception org.huihoo.jfox.soaf.exception org.huihoo.jfox.soaf.util.resource

### org.huihoo.jfox.soaf.services.dao

Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance
--- | --- | --- | --- | ---
0 | 6 | 88% | 100% | 88%

Abstract Classes | Concrete Classes | Used by Packages | Uses Packages
--- | --- | --- | ---
AbstractDAO AbstractHibernateDAO AbstractIbatisSqlMapDAO AbstractJdbcDAO AbstractJdoDAO DAO DAOFactory | DAOFactoryImpl | None | java.lang java.util org.huihoo.jfox.soaf.container org.huihoo.jfox.soaf.exception org.huihoo.jfox.soaf.services.jdbc org.huihoo.jfox.soaf.services.persistence

### org.huihoo.jfox.soaf.services.ejb

Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance
--- | --- | --- | --- | ---
2 | 16 | 50% | 89% | 39%

Abstract Classes | Concrete Classes | Used by Packages | Uses Packages
--- | --- | --- | ---
EJBProxyService ServiceLocator | EJBProxyServiceImpl ServiceLocatorImpl | org.huihoo.jfox.soaf.services.jdbc org.huihoo.jfox.soaf.services.mail | com.opensymphony.util java.lang java.lang.reflect java.net java.rmi java.util javax.ejb javax.jms javax.mail javax.naming javax.rmi javax.sql javax.transaction javax.xml.rpc org.apache.commons.logging org.huihoo.jfox.soaf.exception

### org.huihoo.jfox.soaf.services.jdbc

Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance
--- | --- | --- | --- | ---
1 | 16 | 29% | 94% | 23%

Abstract Classes | Concrete Classes | Used by Packages | Uses Packages
--- | --- | --- | ---
DataSourceFactory DataSourceService | C3P0DataSourceFactory DataSourceFactory$1 DataSourceServiceImpl DatabaseConstant XADataSourceFactory | org.huihoo.jfox.soaf.services.dao | com.mchange.v2.c3p0 java.io java.lang java.security java.sql java.util javax.sql org.apache.commons.lang org.apache.commons.lang.math org.apache.commons.logging org.enhydra.jdbc.standard org.huihoo.jfox.soaf.container org.huihoo.jfox.soaf.exception org.huihoo.jfox.soaf.services.ejb org.huihoo.jfox.soaf.services.transaction org.huihoo.jfox.soaf.util.resource

### org.huihoo.jfox.soaf.services.mail

Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance
--- | --- | --- | --- | ---
0 | 8 | 50% | 100% | 50%

Abstract Classes | Concrete Classes | Used by Packages | Uses Packages
--- | --- | --- | ---
MailMessage MailService | MailMessageImpl MailServiceImpl | None | java.io java.lang java.util javax.mail javax.mail.internet org.apache.commons.mail org.huihoo.jfox.soaf.exception org.huihoo.jfox.soaf.services.ejb

### org.huihoo.jfox.soaf.services.naming

Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance
--- | --- | --- | --- | ---
0 | 8 | 50% | 100% | 50%

Abstract Classes | Concrete Classes | Used by Packages | Uses Packages
--- | --- | --- | ---
NamingService | NamingServiceImpl | None | java.io java.lang java.net javax.naming org.apache.commons.logging org.huihoo.jfox.soaf.util.resource org.objectweb.carol.util.configuration org.picocontainer

### org.huihoo.jfox.soaf.services.persistence

Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance
--- | --- | --- | --- | ---
1 | 20 | 50% | 95% | 45%

Abstract Classes | Concrete Classes | Used by Packages | Uses Packages
--- | --- | --- | ---
HibernateService IbatisService JdbcService JdoService PersistenceManagerFactoryService SessionFactoryService | HibernateServiceImpl IbatisServiceImpl JdbcServiceImpl JdoServiceImpl PersistenceManagerFactoryServiceImpl SessionFactoryServiceImpl | org.huihoo.jfox.soaf.services.dao | com.ibatis.common.resources com.ibatis.common.util com.ibatis.dao.client com.ibatis.sqlmap.client com.ibatis.sqlmap.client.event java.io java.lang java.sql java.util javax.jdo javax.sql net.sf.hibernate net.sf.hibernate.cfg net.sf.hibernate.type org.apache.commons.dbutils org.apache.commons.logging org.huihoo.jfox.soaf.exception org.huihoo.jfox.soaf.util.resource org.jpox org.picocontainer

### org.huihoo.jfox.soaf.services.timer

Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance
--- | --- | --- | --- | ---
0 | 5 | 50% | 100% | 50%

Abstract Classes | Concrete Classes | Used by Packages | Uses Packages
--- | --- | --- | ---
QuartzService | QuartzServiceImpl | None | java.lang org.apache.commons.logging org.picocontainer org.quartz org.quartz.impl

### org.huihoo.jfox.soaf.services.transaction

Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance
--- | --- | --- | --- | ---
1 | 7 | 50% | 88% | 38%

Abstract Classes | Concrete Classes | Used by Packages | Uses Packages
--- | --- | --- | ---
JotmTransactionService | JotmTransactionServiceImpl | org.huihoo.jfox.soaf.services.jdbc | java.lang javax.naming javax.transaction org.apache.commons.logging org.objectweb.jotm org.objectweb.transaction.jta org.picocontainer

### org.huihoo.jfox.soaf.services.useraccess.struts

Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance
--- | --- | --- | --- | ---
0 | 12 | 0% | 100% | 0%

Abstract Classes | Concrete Classes | Used by Packages | Uses Packages
--- | --- | --- | ---
None | ActionFactory PicoRequestProcessor PicoTilesRequestProcessor ServiceLoaderPlugIn | None | java.io java.lang java.util javax.servlet javax.servlet.http org.apache.commons.logging org.apache.struts.action org.apache.struts.config org.apache.struts.tiles org.huihoo.jfox.soaf.container org.huihoo.jfox.soaf.exception org.picocontainer

### org.huihoo.jfox.soaf.services.useraccess.velocity

Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance
--- | --- | --- | --- | ---
0 | 5 | 50% | 100% | 50%

Abstract Classes | Concrete Classes | Used by Packages | Uses Packages
--- | --- | --- | ---
VelocityService | VelocityServiceImpl | None | java.lang org.apache.commons.logging org.apache.velocity org.apache.velocity.app org.picocontainer

### org.huihoo.jfox.soaf.services.workflow

Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance
--- | --- | --- | --- | ---
0 | 7 | 50% | 100% | 50%

Abstract Classes | Concrete Classes | Used by Packages | Uses Packages
--- | --- | --- | ---
OSWorkFlowService | OSWorkFlowServiceImpl | None | com.opensymphony.workflow com.opensymphony.workflow.basic com.opensymphony.workflow.config java.lang org.apache.commons.logging org.huihoo.jfox.soaf.util.resource org.picocontainer

### org.huihoo.jfox.soaf.services.ws.axis

Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance
--- | --- | --- | --- | ---
0 | 3 | 100% | 100% | 100%

Abstract Classes | Concrete Classes | Used by Packages | Uses Packages
--- | --- | --- | ---
AxisServiceEndPoint | None | None | java.lang javax.xml.rpc javax.xml.rpc.server

### org.huihoo.jfox.soaf.util.filter

Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance
--- | --- | --- | --- | ---
0 | 4 | 0% | 100% | 0%

Abstract Classes | Concrete Classes | Used by Packages | Uses Packages
--- | --- | --- | ---
None | EncodingFilter | None | java.io java.lang javax.servlet javax.servlet.http

### org.huihoo.jfox.soaf.util.resource

Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance
--- | --- | --- | --- | ---
6 | 4 | 0% | 40% | 60%

Abstract Classes | Concrete Classes | Used by Packages | Uses Packages
--- | --- | --- | ---
None | PropertiesHelper ResourceHelper StringHelper | org.huihoo.jfox.soaf.container org.huihoo.jfox.soaf.services.cache org.huihoo.jfox.soaf.services.jdbc org.huihoo.jfox.soaf.services.naming org.huihoo.jfox.soaf.services.persistence org.huihoo.jfox.soaf.services.workflow | java.io java.lang java.net java.util

### org.huihoo.jfox.soaf.util.web

Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance
--- | --- | --- | --- | ---
0 | 6 | 0% | 100% | 0%

Abstract Classes | Concrete Classes | Used by Packages | Uses Packages
--- | --- | --- | ---
None | ServiceLoaderServlet | None | java.io java.lang javax.servlet javax.servlet.http org.apache.commons.logging org.huihoo.jfox.soaf.container

## Cycles

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

Package | Cyclic Dependencies
--- | ---
org.huihoo.jfox.soaf.container | org.huihoo.jfox.soaf.schema.service org.huihoo.jfox.soaf.container
org.huihoo.jfox.soaf.schema.service | org.huihoo.jfox.soaf.container org.huihoo.jfox.soaf.schema.service
org.huihoo.jfox.soaf.services.dao | org.huihoo.jfox.soaf.container org.huihoo.jfox.soaf.schema.service org.huihoo.jfox.soaf.container
org.huihoo.jfox.soaf.services.jdbc | org.huihoo.jfox.soaf.container org.huihoo.jfox.soaf.schema.service org.huihoo.jfox.soaf.container
org.huihoo.jfox.soaf.services.useraccess.struts | org.huihoo.jfox.soaf.container org.huihoo.jfox.soaf.schema.service org.huihoo.jfox.soaf.container
org.huihoo.jfox.soaf.util.web | org.huihoo.jfox.soaf.container org.huihoo.jfox.soaf.schema.service org.huihoo.jfox.soaf.container

## Explanations

[ 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.