Package | TC | CC | AC | Ca | Ce | A | I | D | V |
---|---|---|---|---|---|---|---|---|---|
org.apache.commons.pipeline | 15 | 7 | 8 | 7 | 3 | 52.999996% | 30.000002% | 17.0% | 1 |
org.apache.commons.pipeline.config | 10 | 10 | 0 | 0 | 8 | 0.0% | 100.0% | 0.0% | 1 |
org.apache.commons.pipeline.driver | 15 | 14 | 1 | 0 | 6 | 7.0% | 100.0% | 7.0% | 1 |
org.apache.commons.pipeline.event | 3 | 3 | 0 | 2 | 3 | 0.0% | 60.000004% | 40.0% | 1 |
org.apache.commons.pipeline.listener | 1 | 1 | 0 | 0 | 4 | 0.0% | 100.0% | 0.0% | 1 |
org.apache.commons.pipeline.server | 2 | 2 | 0 | 0 | 1 | 0.0% | 100.0% | 0.0% | 1 |
org.apache.commons.pipeline.stage | 26 | 22 | 4 | 0 | 17 | 15.000001% | 100.0% | 15.000001% | 1 |
org.apache.commons.pipeline.testFramework | 4 | 4 | 0 | 0 | 4 | 0.0% | 100.0% | 0.0% | 1 |
org.apache.commons.pipeline.util | 13 | 9 | 4 | 2 | 3 | 31.0% | 60.000004% | 9.0% | 1 |
org.apache.commons.pipeline.validation | 11 | 5 | 6 | 1 | 4 | 55.0% | 80.0% | 35.0% | 1 |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
7 | 3 | 52.999996% | 30.000002% | 17.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
org.apache.commons.pipeline.Feeder org.apache.commons.pipeline.PipelineFactory org.apache.commons.pipeline.PipelineLifecycleJob org.apache.commons.pipeline.Stage org.apache.commons.pipeline.StageContext org.apache.commons.pipeline.StageDriver org.apache.commons.pipeline.StageDriverFactory org.apache.commons.pipeline.StageEventListener |
org.apache.commons.pipeline.Feeder$1 org.apache.commons.pipeline.Pipeline org.apache.commons.pipeline.Pipeline$1 org.apache.commons.pipeline.PipelineCreationException org.apache.commons.pipeline.ProcessingException org.apache.commons.pipeline.StageDriver$State org.apache.commons.pipeline.StageException |
org.apache.commons.pipeline.config org.apache.commons.pipeline.driver org.apache.commons.pipeline.event org.apache.commons.pipeline.listener org.apache.commons.pipeline.stage org.apache.commons.pipeline.testFramework org.apache.commons.pipeline.validation |
java.lang java.util org.apache.commons.pipeline.validation |
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.apache.commons.pipeline.config.DigesterPipelineFactory org.apache.commons.pipeline.config.PipelineRuleSet org.apache.commons.pipeline.config.PipelineRuleSet$1 org.apache.commons.pipeline.config.PipelineRuleSet$PipelineAddStageRule org.apache.commons.pipeline.config.PipelineRuleSet$PipelineDriverFactoriesRule org.apache.commons.pipeline.config.PipelineRuleSet$PipelineFactory org.apache.commons.pipeline.config.PipelineRuleSet$PipelineFeedObjectRule org.apache.commons.pipeline.config.PipelineRuleSet$PipelineFeedValueRule org.apache.commons.pipeline.config.PipelineRuleSet$SetNestedPropertyObjectRule org.apache.commons.pipeline.config.PipelineRuleSet$StageDriverFactoryFactory |
None | java.io java.lang java.net java.util org.apache.commons.beanutils org.apache.commons.digester org.apache.commons.pipeline org.xml.sax |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
0 | 6 | 7.0% | 100.0% | 7.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
org.apache.commons.pipeline.driver.AbstractStageDriver |
org.apache.commons.pipeline.driver.DedicatedThreadStageDriver org.apache.commons.pipeline.driver.DedicatedThreadStageDriver$1 org.apache.commons.pipeline.driver.DedicatedThreadStageDriver$2 org.apache.commons.pipeline.driver.DedicatedThreadStageDriver$WorkerThread org.apache.commons.pipeline.driver.DedicatedThreadStageDriverFactory org.apache.commons.pipeline.driver.FaultTolerance org.apache.commons.pipeline.driver.SynchronousStageDriver org.apache.commons.pipeline.driver.SynchronousStageDriver$1 org.apache.commons.pipeline.driver.SynchronousStageDriverFactory org.apache.commons.pipeline.driver.ThreadPoolStageDriver org.apache.commons.pipeline.driver.ThreadPoolStageDriver$1 org.apache.commons.pipeline.driver.ThreadPoolStageDriver$2 org.apache.commons.pipeline.driver.ThreadPoolStageDriver$LatchWorkerThread org.apache.commons.pipeline.driver.ThreadPoolStageDriverFactory |
None | java.lang java.util java.util.concurrent org.apache.commons.logging org.apache.commons.pipeline org.apache.commons.pipeline.util |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
2 | 3 | 0.0% | 60.000004% | 40.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
None | org.apache.commons.pipeline.event.KeyAvailableEvent org.apache.commons.pipeline.event.ObjectProcessedEvent org.apache.commons.pipeline.event.PipelineShutdownRequest |
org.apache.commons.pipeline.listener org.apache.commons.pipeline.stage |
java.lang java.util org.apache.commons.pipeline |
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.apache.commons.pipeline.listener.ObjectProcessedEventCounter |
None | java.lang java.util org.apache.commons.pipeline org.apache.commons.pipeline.event |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
0 | 1 | 0.0% | 100.0% | 0.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
None | org.apache.commons.pipeline.server.PipelineContext org.apache.commons.pipeline.server.PipelineService |
None | java.lang |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
0 | 17 | 15.000001% | 100.0% | 15.000001% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
org.apache.commons.pipeline.stage.BaseStage org.apache.commons.pipeline.stage.ExtendedBaseStage org.apache.commons.pipeline.stage.ExtendedBaseStageMBean org.apache.commons.pipeline.stage.FtpFileDownloadStage$Criterion |
org.apache.commons.pipeline.stage.AddToCollectionStage org.apache.commons.pipeline.stage.DynamicLookupStaticMethodStage org.apache.commons.pipeline.stage.ExtendedBaseStage$1 org.apache.commons.pipeline.stage.ExtendedBaseStage$2 org.apache.commons.pipeline.stage.ExtendedBaseStage$3 org.apache.commons.pipeline.stage.ExtendedBaseStage$4 org.apache.commons.pipeline.stage.FileFinderStage org.apache.commons.pipeline.stage.FtpFileDownloadStage org.apache.commons.pipeline.stage.FtpFileDownloadStage$FileDateMatchCriterion org.apache.commons.pipeline.stage.FtpFileDownloadStage$FileNameMatchCriterion org.apache.commons.pipeline.stage.FtpFileDownloadStage$FileSpec org.apache.commons.pipeline.stage.FtpFileDownloadStage$FileSpec$FileType org.apache.commons.pipeline.stage.HttpFileDownloadStage org.apache.commons.pipeline.stage.InputStreamLineBreakStage org.apache.commons.pipeline.stage.InvokeMethodStage org.apache.commons.pipeline.stage.InvokeStaticMethodStage org.apache.commons.pipeline.stage.KeyWaitBufferStage org.apache.commons.pipeline.stage.LogStage org.apache.commons.pipeline.stage.PipelineShutdownStage org.apache.commons.pipeline.stage.RaiseEventStage org.apache.commons.pipeline.stage.RaiseKeyAvailableEventStage org.apache.commons.pipeline.stage.URLToInputStreamStage |
None | java.io java.lang java.lang.management java.lang.reflect java.net java.text java.util java.util.concurrent.atomic java.util.regex javax.management org.apache.commons.lang.time org.apache.commons.logging org.apache.commons.math.stat.descriptive org.apache.commons.net.ftp org.apache.commons.pipeline org.apache.commons.pipeline.event org.apache.commons.pipeline.util |
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.apache.commons.pipeline.testFramework.FaultingTestStage org.apache.commons.pipeline.testFramework.TestFeeder org.apache.commons.pipeline.testFramework.TestStage org.apache.commons.pipeline.testFramework.TestStageContext |
None | java.lang java.util org.apache.commons.logging org.apache.commons.pipeline |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
2 | 3 | 31.0% | 60.000004% | 9.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
org.apache.commons.pipeline.util.BlockingQueueFactory org.apache.commons.pipeline.util.KeyFactory org.apache.commons.pipeline.util.QueueFactory org.apache.commons.pipeline.util.QueueFactory$AbstractQueueFactory |
org.apache.commons.pipeline.util.BlockingQueueFactory$ArrayBlockingQueueFactory org.apache.commons.pipeline.util.BlockingQueueFactory$DelayQueueFactoryL org.apache.commons.pipeline.util.BlockingQueueFactory$LinkedBlockingQueueFactory org.apache.commons.pipeline.util.BlockingQueueFactory$PriorityBlockingQueueFactory org.apache.commons.pipeline.util.BlockingQueueFactory$SynchronousQueueFactory org.apache.commons.pipeline.util.KeyFactory$HashKeyFactory org.apache.commons.pipeline.util.QueueFactory$ConcurrentLinkedQueueFactory org.apache.commons.pipeline.util.QueueFactory$LinkedListFactory org.apache.commons.pipeline.util.QueueFactory$PriorityQueueFactory |
org.apache.commons.pipeline.driver org.apache.commons.pipeline.stage |
java.lang java.util java.util.concurrent |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
1 | 4 | 55.0% | 80.0% | 35.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
org.apache.commons.pipeline.validation.Branches org.apache.commons.pipeline.validation.ConsumedTypes org.apache.commons.pipeline.validation.PipelineValidator org.apache.commons.pipeline.validation.ProducedTypes org.apache.commons.pipeline.validation.ProducesConsumed org.apache.commons.pipeline.validation.ProductionOnBranch |
org.apache.commons.pipeline.validation.SimplePipelineValidator org.apache.commons.pipeline.validation.ValidationException org.apache.commons.pipeline.validation.ValidationFailure org.apache.commons.pipeline.validation.ValidationFailure$Type org.apache.commons.pipeline.validation.ValidationUtils |
org.apache.commons.pipeline |
java.lang java.lang.annotation java.util org.apache.commons.pipeline |
Package | Package Dependencies |
---|---|
org.apache.commons.pipeline | org.apache.commons.pipeline.validation org.apache.commons.pipeline |
org.apache.commons.pipeline.config | org.apache.commons.pipeline org.apache.commons.pipeline.validation org.apache.commons.pipeline |
org.apache.commons.pipeline.driver | org.apache.commons.pipeline org.apache.commons.pipeline.validation org.apache.commons.pipeline |
org.apache.commons.pipeline.event | org.apache.commons.pipeline org.apache.commons.pipeline.validation org.apache.commons.pipeline |
org.apache.commons.pipeline.listener | org.apache.commons.pipeline.event org.apache.commons.pipeline org.apache.commons.pipeline.validation org.apache.commons.pipeline |
org.apache.commons.pipeline.stage | org.apache.commons.pipeline org.apache.commons.pipeline.validation org.apache.commons.pipeline |
org.apache.commons.pipeline.testFramework | org.apache.commons.pipeline org.apache.commons.pipeline.validation org.apache.commons.pipeline |
org.apache.commons.pipeline.validation | org.apache.commons.pipeline org.apache.commons.pipeline.validation |
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. |