- Analyze java package metrics in a graph database
- Calculate metrics
- jqassistant
- notebook walks through examples for integrating various packages with Neo4j
- OO Design Quality Metrics
- A Validation of Martin's Metric
- Neo4j Python Driver
Incoming dependencies are also denoted as "Fan-in", "Afferent Coupling" or "in-degree". These are the ones that use the listed package.
If these packages get changed, the incoming dependencies might be affected by the change. The more incoming dependencies, the harder it gets to change the code without the need to adapt the dependent code (“rigid code”). Even worse, it might affect the behavior of the dependent code in an unwanted way (“fragile code”).
Since Java Packages are organized hierarchically, incoming dependencies can be count for every package in isolation or by including all of its sub-packages. The latter one is done without top level packages like for example "org" or "org.company" by assuring that only packages are considered that have other packages or types in the same hierarchy level ("siblings").
- Show the top 20 Java Packages with the most incoming dependencies
- Set the "incomingDependencies" properties on Package nodes.
| artifactName | fullQualifiedPackageName | packageName | incomingDependencies | incomingDependenciesWeight | incomingDependentTypes | incomingDependentInterfaces | incomingDependentPackages | incomingDependentArtifacts | |
|---|---|---|---|---|---|---|---|---|---|
| 0 | axon-messaging-5.0.3 | org.axonframework.messaging.core | core | 12499 | 39679 | 419 | 83 | 71 | 7 |
| 1 | axon-messaging-5.0.3 | org.axonframework.messaging.core.unitofwork | unitofwork | 11625 | 38453 | 242 | 54 | 62 | 4 |
| 2 | axon-common-5.0.3 | org.axonframework.common.configuration | configuration | 3727 | 19786 | 151 | 53 | 33 | 8 |
| 3 | axon-messaging-5.0.3 | org.axonframework.messaging.eventhandling | eventhandling | 3012 | 10890 | 149 | 30 | 37 | 6 |
| 4 | axon-common-5.0.3 | org.axonframework.common.annotation | annotation | 2579 | 2787 | 144 | 20 | 60 | 8 |
| 5 | axon-messaging-5.0.3 | org.axonframework.messaging.commandhandling | commandhandling | 1497 | 5379 | 100 | 25 | 27 | 6 |
| 6 | axon-common-5.0.3 | org.axonframework.common.infra | infra | 1378 | 1669 | 122 | 30 | 47 | 6 |
| 7 | axon-common-5.0.3 | org.axonframework.common | common | 977 | 2407 | 288 | 22 | 80 | 10 |
| 8 | axon-messaging-5.0.3 | org.axonframework.messaging.queryhandling | queryhandling | 688 | 2544 | 76 | 17 | 16 | 3 |
| 9 | axon-messaging-5.0.3 | org.axonframework.messaging.core.annotation | annotation | 512 | 1632 | 119 | 11 | 24 | 4 |
| 10 | axon-conversion-5.0.3 | org.axonframework.conversion | conversion | 468 | 1807 | 62 | 12 | 22 | 4 |
| 11 | axon-messaging-5.0.3 | org.axonframework.messaging.eventhandling.proc... | token | 425 | 2147 | 58 | 8 | 16 | 3 |
| 12 | axon-messaging-5.0.3 | org.axonframework.messaging.eventstreaming | eventstreaming | 293 | 833 | 53 | 14 | 10 | 3 |
| 13 | axon-eventsourcing-5.0.3 | org.axonframework.eventsourcing.eventstore | eventstore | 224 | 724 | 65 | 7 | 9 | 3 |
| 14 | axon-messaging-5.0.3 | org.axonframework.messaging.tracing | tracing | 136 | 478 | 36 | 7 | 6 | 1 |
| 15 | axon-test-5.0.3 | org.axonframework.test.fixture | fixture | 134 | 376 | 29 | 1 | 2 | 0 |
| 16 | axon-modelling-5.0.3 | org.axonframework.modelling | modelling | 125 | 282 | 36 | 9 | 9 | 2 |
| 17 | axon-modelling-5.0.3 | org.axonframework.modelling.entity | entity | 115 | 394 | 25 | 5 | 5 | 1 |
| 18 | axon-modelling-5.0.3 | org.axonframework.modelling.entity.child | child | 89 | 230 | 28 | 7 | 3 | 0 |
| 19 | axon-messaging-5.0.3 | org.axonframework.messaging.eventhandling.proc... | segmenting | 86 | 662 | 31 | 5 | 10 | 1 |
- Show the top 20 Java Packages including their sub-packages with the most incoming dependencies
- Set the property "incomingDependenciesIncludingSubpackages" on Package nodes.
| artifactName | fullQualifiedPackageName | packageName | incomingDependencies | incomingDependenciesWeight | incomingDependentTypes | incomingDependentInterfaces | incomingDependentPackages | incomingDependentArtifacts | |
|---|---|---|---|---|---|---|---|---|---|
| 0 | axon-messaging-5.0.3 | org.axonframework.messaging.core | core | 18180 | 59941 | 367 | 115 | 67 | 7 |
| 1 | axon-messaging-5.0.3 | org.axonframework.messaging.core.unitofwork | unitofwork | 11275 | 37337 | 228 | 54 | 58 | 5 |
| 2 | axon-common-5.0.3 | org.axonframework.common | common | 8038 | 25190 | 470 | 107 | 94 | 9 |
| 3 | axon-common-5.0.3 | org.axonframework.common.configuration | configuration | 3566 | 19095 | 111 | 53 | 32 | 8 |
| 4 | axon-common-5.0.3 | org.axonframework.common.annotation | annotation | 2578 | 2786 | 143 | 20 | 59 | 8 |
| 5 | axon-messaging-5.0.3 | org.axonframework.messaging.eventhandling | eventhandling | 2061 | 7468 | 99 | 35 | 26 | 6 |
| 6 | axon-common-5.0.3 | org.axonframework.common.infra | infra | 1364 | 1595 | 117 | 30 | 46 | 6 |
| 7 | axon-messaging-5.0.3 | org.axonframework.messaging.commandhandling | commandhandling | 900 | 3463 | 62 | 26 | 20 | 6 |
| 8 | axon-messaging-5.0.3 | org.axonframework.messaging.core.annotation | annotation | 423 | 1325 | 82 | 11 | 23 | 4 |
| 9 | axon-conversion-5.0.3 | org.axonframework.conversion | conversion | 397 | 1597 | 38 | 12 | 17 | 3 |
| 10 | axon-messaging-5.0.3 | org.axonframework.messaging.eventhandling.proc... | token | 350 | 1416 | 45 | 8 | 11 | 4 |
| 11 | axon-messaging-5.0.3 | org.axonframework.messaging.queryhandling | queryhandling | 269 | 973 | 34 | 15 | 12 | 5 |
| 12 | axon-messaging-5.0.3 | org.axonframework.messaging.eventstreaming | eventstreaming | 241 | 688 | 39 | 14 | 9 | 3 |
| 13 | axon-messaging-5.0.3 | org.axonframework.messaging.eventhandling.proc... | processing | 218 | 685 | 30 | 13 | 10 | 5 |
| 14 | axon-messaging-5.0.3 | org.axonframework.messaging.eventhandling.proc... | streaming | 207 | 655 | 30 | 12 | 11 | 4 |
| 15 | axon-messaging-5.0.3 | org.axonframework.messaging.tracing | tracing | 107 | 356 | 21 | 7 | 4 | 1 |
| 16 | axon-eventsourcing-5.0.3 | org.axonframework.eventsourcing.eventstore | eventstore | 76 | 207 | 19 | 6 | 6 | 3 |
| 17 | axon-messaging-5.0.3 | org.axonframework.messaging.eventhandling.proc... | segmenting | 74 | 623 | 23 | 5 | 9 | 1 |
| 18 | axon-modelling-5.0.3 | org.axonframework.modelling | modelling | 74 | 226 | 13 | 20 | 4 | 1 |
| 19 | axon-messaging-5.0.3 | org.axonframework.messaging.core.conversion | conversion | 69 | 225 | 22 | 3 | 17 | 5 |
Outgoing dependencies are also denoted as "Fan-out", "Efferent Coupling" or "out-degree". These are the ones that are used by the listed package.
Code from other packages and libraries you’re depending on (outgoing) might change over time. The more outgoing changes, the more likely and frequently code changes are needed. This involves time and effort which can be reduced by automation of tests and version updates. Automated tests are crucial to reveal updates, that change the behavior of the code unexpectedly (“fragile code”). As soon as more effort is required, keeping up becomes difficult (“rigid code”). Not being able to use a newer version might not only restrict features, it can get problematic if there are security issues. This might force you to take “fast but ugly” solutions into account which further increases technical dept.
Since Java Packages are organized hierarchically, outgoing dependencies can be count for every package in isolation or by including all of its sub-packages. The latter one is done without top level packages like for example "org" or "org.company" by assuring that only packages are considered that have other packages or types in the same hierarchy level ("siblings").
- Show the top 20 Java Packages with the most outgoing dependencies
- Set the "outgoingDependencies" properties on Package nodes.
| artifactName | fullQualifiedPackageName | packageName | outgoingDependencies | outgoingDependenciesWeight | outgoingDependentTypes | outgoingDependentInterfaces | outgoingDependentPackages | outgoingDependentArtifacts | |
|---|---|---|---|---|---|---|---|---|---|
| 0 | axon-messaging-5.0.3 | org.axonframework.messaging.core.configuration | configuration | 2694 | 16653 | 79 | 41 | 29 | 2 |
| 1 | axon-messaging-5.0.3 | org.axonframework.messaging.eventhandling.proc... | pooled | 2322 | 9835 | 96 | 46 | 20 | 1 |
| 2 | axon-server-connector-5.0.3 | org.axonframework.axonserver.connector.event | event | 1282 | 4029 | 72 | 29 | 18 | 3 |
| 3 | axon-eventsourcing-5.0.3 | org.axonframework.eventsourcing.eventstore.jpa | jpa | 1239 | 4839 | 61 | 27 | 17 | 3 |
| 4 | axon-eventsourcing-5.0.3 | org.axonframework.eventsourcing.configuration | configuration | 1237 | 4808 | 66 | 41 | 25 | 3 |
| 5 | axon-messaging-5.0.3 | org.axonframework.messaging.core.interception | interception | 1160 | 6002 | 48 | 27 | 11 | 1 |
| 6 | axon-test-5.0.3 | org.axonframework.test.fixture | fixture | 1079 | 3869 | 74 | 39 | 16 | 3 |
| 7 | axon-modelling-5.0.3 | org.axonframework.modelling.entity.annotation | annotation | 857 | 3255 | 63 | 30 | 19 | 3 |
| 8 | axon-modelling-5.0.3 | org.axonframework.modelling.entity | entity | 800 | 2887 | 35 | 21 | 9 | 2 |
| 9 | axon-messaging-5.0.3 | org.axonframework.messaging.eventhandling.proc... | subscribing | 750 | 2762 | 47 | 29 | 14 | 1 |
| 10 | axon-eventsourcing-5.0.3 | org.axonframework.eventsourcing.eventstore | eventstore | 716 | 2684 | 64 | 29 | 10 | 2 |
| 11 | axon-spring-boot-autoconfigure-5.0.3 | org.axonframework.extension.springboot.autoconfig | autoconfig | 714 | 2921 | 112 | 39 | 36 | 6 |
| 12 | axon-modelling-5.0.3 | org.axonframework.modelling.configuration | configuration | 585 | 2279 | 41 | 29 | 10 | 2 |
| 13 | axon-messaging-5.0.3 | org.axonframework.messaging.queryhandling | queryhandling | 533 | 2104 | 48 | 23 | 9 | 2 |
| 14 | axon-messaging-5.0.3 | org.axonframework.messaging.queryhandling.dist... | distributed | 513 | 1412 | 38 | 23 | 10 | 1 |
| 15 | axon-messaging-5.0.3 | org.axonframework.messaging.monitoring.interce... | interception | 500 | 1550 | 15 | 15 | 6 | 0 |
| 16 | axon-messaging-5.0.3 | org.axonframework.messaging.commandhandling.in... | interception | 499 | 1240 | 25 | 16 | 8 | 1 |
| 17 | axon-messaging-5.0.3 | org.axonframework.messaging.queryhandling.inte... | interception | 491 | 1561 | 26 | 16 | 6 | 1 |
| 18 | axon-messaging-5.0.3 | org.axonframework.messaging.eventhandling.anno... | annotation | 480 | 1539 | 48 | 22 | 14 | 1 |
| 19 | axon-messaging-5.0.3 | org.axonframework.messaging.eventhandling | eventhandling | 471 | 1201 | 42 | 20 | 8 | 2 |
- Show the top 20 Java Packages including their sub-packages with the most outgoing dependencies
- Set the property "outgoingDependenciesIncludingSubpackages" on Package nodes.
| artifactName | fullQualifiedPackageName | packageName | outgoingDependencies | outgoingDependenciesWeight | outgoingDependentTypes | outgoingDependentInterfaces | outgoingDependentPackages | outgoingDependentArtifacts | |
|---|---|---|---|---|---|---|---|---|---|
| 0 | axon-messaging-5.0.3 | org.axonframework.messaging.eventhandling | eventhandling | 675 | 2160 | 105 | 46 | 21 | 2 |
| 1 | axon-messaging-5.0.3 | org.axonframework.messaging.core | core | 434 | 1531 | 92 | 76 | 30 | 2 |
| 2 | axon-modelling-5.0.3 | org.axonframework.modelling | modelling | 372 | 1088 | 63 | 23 | 19 | 2 |
| 3 | axon-messaging-5.0.3 | org.axonframework.messaging.eventhandling.proc... | processing | 348 | 1280 | 75 | 13 | 18 | 2 |
| 4 | axon-messaging-5.0.3 | org.axonframework.messaging.commandhandling | commandhandling | 325 | 1035 | 74 | 29 | 15 | 2 |
| 5 | axon-messaging-5.0.3 | org.axonframework.messaging.queryhandling | queryhandling | 316 | 1128 | 73 | 19 | 12 | 2 |
| 6 | axon-eventsourcing-5.0.3 | org.axonframework.eventsourcing | eventsourcing | 313 | 1037 | 96 | 14 | 31 | 3 |
| 7 | axon-messaging-5.0.3 | org.axonframework.messaging.eventhandling.proc... | streaming | 275 | 1008 | 76 | 11 | 20 | 2 |
| 8 | axon-modelling-5.0.3 | org.axonframework.modelling.entity | entity | 269 | 854 | 46 | 11 | 17 | 3 |
| 9 | axon-server-connector-5.0.3 | org.axonframework.axonserver.connector | connector | 253 | 866 | 107 | 2 | 24 | 3 |
| 10 | axon-messaging-5.0.3 | org.axonframework.messaging.eventhandling.proc... | pooled | 231 | 927 | 73 | 2 | 19 | 1 |
| 11 | axon-messaging-5.0.3 | org.axonframework.messaging.core.unitofwork | unitofwork | 188 | 716 | 15 | 54 | 9 | 1 |
| 12 | axon-eventsourcing-5.0.3 | org.axonframework.eventsourcing.eventstore | eventstore | 178 | 572 | 54 | 7 | 16 | 3 |
| 13 | axon-modelling-5.0.3 | org.axonframework.modelling.entity.annotation | annotation | 178 | 679 | 48 | 5 | 18 | 3 |
| 14 | axon-messaging-5.0.3 | org.axonframework.messaging.core.interception | interception | 172 | 588 | 43 | 2 | 11 | 1 |
| 15 | axon-test-5.0.3 | org.axonframework.test | test | 169 | 510 | 46 | 10 | 14 | 2 |
| 16 | axon-server-connector-5.0.3 | org.axonframework.axonserver.connector.event | event | 142 | 416 | 59 | 0 | 17 | 3 |
| 17 | axon-test-5.0.3 | org.axonframework.test.fixture | fixture | 138 | 490 | 43 | 9 | 15 | 3 |
| 18 | axon-spring-boot-autoconfigure-5.0.3 | org.axonframework.extension.springboot.autoconfig | autoconfig | 129 | 452 | 84 | 0 | 35 | 6 |
| 19 | axon-messaging-5.0.3 | org.axonframework.messaging.core.annotation | annotation | 128 | 341 | 38 | 11 | 10 | 1 |
Instability is expressed as the ratio of the number of outgoing dependencies of a module (i.e., the number of packages that depend on it) to the total number of dependencies (i.e., the sum of incoming and outgoing dependencies).
Small values near zero indicate low Instability. With no outgoing but some incoming dependencies the Instability is zero which is denoted as maximally stable. Such code units are more rigid and difficult to change without impacting other parts of the system. If they are changed less because of that, they are considered stable.
Conversely, high values approaching one indicate high Instability. With some outgoing dependencies but no incoming ones the Instability is denoted as maximally unstable. Such code units are easier to change without affecting other modules, making them more flexible and less prone to cascading changes throughout the system. If they are changed more often because of that, they are considered unstable.
Since Java Packages are organized hierarchically, Instability can be calculated for every package in isolation or by including all of its sub-packages.
- Show the top 20 Java Packages with the lowest Instability
- Set the property "instability" on Package nodes.
| artifactName | fullQualifiedPackageName | packageName | instability | instabilityTypes | instabilityInterfaces | instabilityPackages | instabilityArtifacts | p.outgoingDependencies | p.incomingDependencies | p.outgoingDependentTypes | p.incomingDependentTypes | p.outgoingDependentInterfaces | p.incomingDependentInterfaces | p.outgoingDependentPackages | p.incomingDependentPackages | p.outgoingDependentArtifacts | p.incomingDependentArtifacts | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | axon-common-5.0.3 | org.axonframework.common.annotation | annotation | 0.001162 | 0.020408 | 0.000000 | 0.032258 | 0.000000 | 3 | 2579 | 3 | 144 | 0 | 20 | 2 | 60 | 0 | 8 |
| 1 | axon-messaging-5.0.3 | org.axonframework.messaging.core.unitofwork | unitofwork | 0.009205 | 0.079848 | 0.142857 | 0.088235 | 0.200000 | 108 | 11625 | 21 | 242 | 9 | 54 | 6 | 62 | 1 | 4 |
| 2 | axon-common-5.0.3 | org.axonframework.common.infra | infra | 0.019217 | 0.075758 | 0.090909 | 0.060000 | 0.000000 | 27 | 1378 | 10 | 122 | 3 | 30 | 3 | 47 | 0 | 6 |
| 3 | axon-messaging-5.0.3 | org.axonframework.messaging.core | core | 0.026558 | 0.160321 | 0.170000 | 0.101266 | 0.222222 | 341 | 12499 | 80 | 419 | 17 | 83 | 8 | 71 | 2 | 7 |
| 4 | axon-common-5.0.3 | org.axonframework.common | common | 0.030754 | 0.055738 | 0.000000 | 0.012346 | 0.000000 | 31 | 977 | 17 | 288 | 0 | 22 | 1 | 80 | 0 | 10 |
| 5 | axon-messaging-5.0.3 | org.axonframework.messaging.eventhandling.proc... | token | 0.042793 | 0.134328 | 0.333333 | 0.200000 | 0.400000 | 19 | 425 | 9 | 58 | 4 | 8 | 4 | 16 | 2 | 3 |
| 6 | axon-conversion-5.0.3 | org.axonframework.conversion | conversion | 0.042945 | 0.138889 | 0.250000 | 0.120000 | 0.200000 | 21 | 468 | 10 | 62 | 4 | 12 | 3 | 22 | 1 | 4 |
| 7 | axon-common-5.0.3 | org.axonframework.common.configuration | configuration | 0.070574 | 0.256158 | 0.283784 | 0.131579 | 0.000000 | 283 | 3727 | 52 | 151 | 21 | 53 | 5 | 33 | 0 | 8 |
| 8 | axon-messaging-5.0.3 | org.axonframework.messaging.eventhandling | eventhandling | 0.135228 | 0.219895 | 0.400000 | 0.177778 | 0.250000 | 471 | 3012 | 42 | 149 | 20 | 30 | 8 | 37 | 2 | 6 |
| 9 | axon-messaging-5.0.3 | org.axonframework.messaging.commandhandling | commandhandling | 0.165552 | 0.259259 | 0.431818 | 0.181818 | 0.250000 | 297 | 1497 | 35 | 100 | 19 | 25 | 6 | 27 | 2 | 6 |
| 10 | axon-common-5.0.3 | org.axonframework.common.util | util | 0.200000 | 0.153846 | 0.000000 | 0.250000 | 0.000000 | 3 | 12 | 2 | 11 | 0 | 0 | 2 | 6 | 0 | 2 |
| 11 | axon-messaging-5.0.3 | org.axonframework.messaging.monitoring | monitoring | 0.213592 | 0.190476 | 0.571429 | 0.307692 | 0.333333 | 22 | 81 | 8 | 34 | 4 | 3 | 4 | 9 | 1 | 2 |
| 12 | axon-messaging-5.0.3 | org.axonframework.messaging.core.conversion | conversion | 0.230769 | 0.178571 | 0.571429 | 0.217391 | 0.285714 | 21 | 70 | 5 | 23 | 4 | 3 | 5 | 18 | 2 | 5 |
| 13 | axon-messaging-5.0.3 | org.axonframework.messaging.eventhandling.proc... | store | 0.263158 | 0.190476 | 1.000000 | 0.400000 | 0.333333 | 10 | 28 | 4 | 17 | 2 | 0 | 4 | 6 | 1 | 2 |
| 14 | axon-messaging-5.0.3 | org.axonframework.messaging.eventstreaming | eventstreaming | 0.263819 | 0.320513 | 0.461538 | 0.375000 | 0.250000 | 105 | 293 | 25 | 53 | 12 | 14 | 6 | 10 | 1 | 3 |
| 15 | axon-common-5.0.3 | org.axonframework.common.lifecycle | lifecycle | 0.333333 | 0.444444 | 0.000000 | 0.333333 | 0.000000 | 4 | 8 | 4 | 5 | 0 | 0 | 2 | 4 | 0 | 1 |
| 16 | axon-messaging-5.0.3 | org.axonframework.messaging.tracing | tracing | 0.333333 | 0.320755 | 0.533333 | 0.454545 | 0.500000 | 68 | 136 | 17 | 36 | 8 | 7 | 5 | 6 | 1 | 1 |
| 17 | axon-common-5.0.3 | org.axonframework.common.tx | tx | 0.375000 | 0.230769 | 0.666667 | 0.200000 | 0.000000 | 6 | 10 | 3 | 10 | 2 | 1 | 2 | 8 | 0 | 2 |
| 18 | axon-update-5.0.3 | org.axonframework.update.api | api | 0.379310 | 0.384615 | 0.000000 | 0.400000 | 1.000000 | 11 | 18 | 5 | 8 | 0 | 1 | 2 | 3 | 1 | 0 |
| 19 | axon-messaging-5.0.3 | org.axonframework.messaging.eventhandling.proc... | errorhandling | 0.380952 | 0.384615 | 0.750000 | 0.500000 | 0.000000 | 8 | 13 | 5 | 8 | 3 | 1 | 4 | 4 | 0 | 0 |
- Show the top 20 Java Packages including their sub-packages with the lowest Instability
- Set the property "instabilityIncludingSubpackages" on Package nodes.
| artifactName | fullQualifiedPackageName | packageName | instability | instabilityTypes | instabilityInterfaces | instabilityPackages | instabilityArtifacts | p.outgoingDependenciesIncludingSubpackages | p.incomingDependenciesIncludingSubpackages | p.outgoingDependentTypesIncludingSubpackages | p.incomingDependentTypesIncludingSubpackages | p.outgoingDependentInterfacesIncludingSubpackages | p.incomingDependentInterfacesIncludingSubpackages | p.outgoingDependentPackagesIncludingSubpackages | p.incomingDependentPackagesIncludingSubpackages | p.outgoingDependentArtifactsIncludingSubpackages | p.incomingDependentArtifactsIncludingSubpackages | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | axon-common-5.0.3 | org.axonframework.common.annotation | annotation | 0.000775 | 0.013793 | 0.000000 | 0.016667 | 0.000000 | 2 | 2578 | 2 | 143 | 0 | 20 | 1 | 59 | 0 | 8 |
| 1 | axon-common-5.0.3 | org.axonframework.common.infra | infra | 0.003652 | 0.025000 | 0.000000 | 0.041667 | 0.000000 | 5 | 1364 | 3 | 117 | 0 | 30 | 2 | 46 | 0 | 6 |
| 2 | axon-messaging-5.0.3 | org.axonframework.messaging.core.unitofwork | unitofwork | 0.016401 | 0.061728 | 0.500000 | 0.134328 | 0.166667 | 188 | 11275 | 15 | 228 | 54 | 54 | 9 | 58 | 1 | 5 |
| 3 | axon-messaging-5.0.3 | org.axonframework.messaging.core | core | 0.023316 | 0.200436 | 0.397906 | 0.309278 | 0.222222 | 434 | 18180 | 92 | 367 | 76 | 115 | 30 | 67 | 2 | 7 |
| 4 | axon-common-5.0.3 | org.axonframework.common.configuration | configuration | 0.030188 | 0.067227 | 0.436170 | 0.111111 | 0.000000 | 111 | 3566 | 8 | 111 | 41 | 53 | 4 | 32 | 0 | 8 |
| 5 | axon-conversion-5.0.3 | org.axonframework.conversion | conversion | 0.059242 | 0.136364 | 0.500000 | 0.150000 | 0.000000 | 25 | 397 | 6 | 38 | 12 | 12 | 3 | 17 | 0 | 3 |
| 6 | axon-common-5.0.3 | org.axonframework.common.util | util | 0.090909 | 0.100000 | 0.000000 | 0.166667 | 0.000000 | 1 | 10 | 1 | 9 | 0 | 0 | 1 | 5 | 0 | 1 |
| 7 | axon-messaging-5.0.3 | org.axonframework.messaging.core.conversion | conversion | 0.126582 | 0.153846 | 0.500000 | 0.190476 | 0.285714 | 10 | 69 | 4 | 22 | 3 | 3 | 4 | 17 | 2 | 5 |
| 8 | axon-messaging-5.0.3 | org.axonframework.messaging.eventhandling.proc... | token | 0.154589 | 0.318182 | 0.500000 | 0.476190 | 0.333333 | 64 | 350 | 21 | 45 | 8 | 8 | 10 | 11 | 2 | 4 |
| 9 | axon-messaging-5.0.3 | org.axonframework.messaging.eventstreaming | eventstreaming | 0.157343 | 0.204082 | 0.500000 | 0.357143 | 0.250000 | 45 | 241 | 10 | 39 | 14 | 14 | 5 | 9 | 1 | 3 |
| 10 | axon-common-5.0.3 | org.axonframework.common.lifecycle | lifecycle | 0.166667 | 0.250000 | 0.000000 | 0.250000 | 0.000000 | 1 | 5 | 1 | 3 | 0 | 0 | 1 | 3 | 0 | 1 |
| 11 | axon-modelling-5.0.3 | org.axonframework.modelling.repository | repository | 0.204819 | 0.263158 | 0.500000 | 0.400000 | 0.500000 | 17 | 66 | 5 | 14 | 5 | 5 | 4 | 6 | 1 | 1 |
| 12 | axon-messaging-5.0.3 | org.axonframework.messaging.tracing | tracing | 0.207407 | 0.300000 | 0.461538 | 0.500000 | 0.500000 | 28 | 107 | 9 | 21 | 6 | 7 | 4 | 4 | 1 | 1 |
| 13 | axon-common-5.0.3 | org.axonframework.common.tx | tx | 0.230769 | 0.230769 | 0.500000 | 0.200000 | 0.000000 | 3 | 10 | 3 | 10 | 1 | 1 | 2 | 8 | 0 | 2 |
| 14 | axon-messaging-5.0.3 | org.axonframework.messaging.eventhandling.proc... | errorhandling | 0.230769 | 0.333333 | 0.500000 | 0.500000 | 0.000000 | 3 | 10 | 3 | 6 | 1 | 1 | 3 | 3 | 0 | 0 |
| 15 | axon-messaging-5.0.3 | org.axonframework.messaging.core.annotation | annotation | 0.232305 | 0.316667 | 0.500000 | 0.303030 | 0.200000 | 128 | 423 | 38 | 82 | 11 | 11 | 10 | 23 | 1 | 4 |
| 16 | axon-messaging-5.0.3 | org.axonframework.messaging.eventhandling | eventhandling | 0.246711 | 0.514706 | 0.567901 | 0.446809 | 0.250000 | 675 | 2061 | 105 | 99 | 46 | 35 | 21 | 26 | 2 | 6 |
| 17 | axon-common-5.0.3 | org.axonframework.common.property | property | 0.250000 | 0.400000 | 0.000000 | 0.250000 | 0.000000 | 2 | 6 | 2 | 3 | 0 | 0 | 1 | 3 | 0 | 1 |
| 18 | axon-spring-boot-autoconfigure-5.0.3 | org.axonframework.extension.springboot.util | util | 0.250000 | 0.333333 | 0.000000 | 0.500000 | 0.000000 | 1 | 3 | 1 | 2 | 0 | 0 | 1 | 1 | 0 | 0 |
| 19 | axon-messaging-5.0.3 | org.axonframework.messaging.commandhandling | commandhandling | 0.265306 | 0.544118 | 0.527273 | 0.428571 | 0.250000 | 325 | 900 | 74 | 62 | 29 | 26 | 15 | 20 | 2 | 6 |
Package Abstractness is expressed as the ratio of the number of abstract classes and interfaces to the total number of classes of a package.
Zero Abstractness means that there are no abstract types or interfaces in the package. On the other hand, a value of one means that there are only abstract types.
Since Java Packages are organized hierarchically, Abstractness can be calculated for every package in isolation or by including all of its sub-packages.
- Show the top 30 packages with the lowest Abstractness
- Set the property "abstractness" on Package nodes.
| artifactName | fullQualifiedPackageName | packageName | abstractness | numberAbstractTypes | numberTypes | |
|---|---|---|---|---|---|---|
| 0 | axon-spring-boot-autoconfigure-5.0.3 | org.axonframework.extension.springboot.autoconfig | autoconfig | 0.0 | 0 | 41 |
| 1 | axon-spring-boot-autoconfigure-5.0.3 | org.axonframework.extension.springboot | springboot | 0.0 | 0 | 19 |
| 2 | axon-server-connector-5.0.3 | org.axonframework.axonserver.connector.event | event | 0.0 | 0 | 14 |
| 3 | axon-metrics-micrometer-5.0.3 | org.axonframework.extension.metrics.micrometer | micrometer | 0.0 | 0 | 11 |
| 4 | axon-messaging-5.0.3 | org.axonframework.messaging.queryhandling.inte... | interception | 0.0 | 0 | 8 |
| 5 | axon-messaging-5.0.3 | org.axonframework.messaging.core.timeout | timeout | 0.0 | 0 | 8 |
| 6 | axon-messaging-5.0.3 | org.axonframework.messaging.commandhandling.in... | interception | 0.0 | 0 | 6 |
| 7 | axon-messaging-5.0.3 | org.axonframework.messaging.tracing.attributes | attributes | 0.0 | 0 | 6 |
| 8 | axon-update-5.0.3 | org.axonframework.update.api | api | 0.0 | 0 | 6 |
| 9 | axon-server-connector-5.0.3 | org.axonframework.axonserver.connector.command | command | 0.0 | 0 | 6 |
| 10 | axon-common-5.0.3 | org.axonframework.common.lifecycle | lifecycle | 0.0 | 0 | 5 |
| 11 | axon-tracing-opentelemetry-5.0.3 | org.axonframework.extension.tracing.opentelemetry | opentelemetry | 0.0 | 0 | 5 |
| 12 | axon-conversion-5.0.3 | org.axonframework.conversion.jackson | jackson | 0.0 | 0 | 5 |
| 13 | axon-conversion-5.0.3 | org.axonframework.conversion.converter | converter | 0.0 | 0 | 5 |
| 14 | axon-conversion-5.0.3 | org.axonframework.conversion.jackson2 | jackson2 | 0.0 | 0 | 5 |
| 15 | axon-messaging-5.0.3 | org.axonframework.messaging.monitoring.interce... | interception | 0.0 | 0 | 5 |
| 16 | axon-messaging-5.0.3 | org.axonframework.messaging.eventhandling.proc... | jpa | 0.0 | 0 | 4 |
| 17 | axon-update-5.0.3 | org.axonframework.update.detection | detection | 0.0 | 0 | 4 |
| 18 | axon-metrics-micrometer-5.0.3 | org.axonframework.extension.metrics.micrometer... | springboot | 0.0 | 0 | 4 |
| 19 | axon-messaging-5.0.3 | org.axonframework.messaging.eventhandling.inte... | interception | 0.0 | 0 | 3 |
| 20 | axon-messaging-5.0.3 | org.axonframework.messaging.eventhandling.proc... | inmemory | 0.0 | 0 | 3 |
| 21 | axon-messaging-5.0.3 | org.axonframework.messaging.core.configuration... | reflection | 0.0 | 0 | 3 |
| 22 | axon-test-5.0.3 | org.axonframework.test.server | server | 0.0 | 0 | 2 |
| 23 | axon-messaging-5.0.3 | org.axonframework.messaging.eventhandling.proc... | annotation | 0.0 | 0 | 2 |
| 24 | axon-messaging-5.0.3 | org.axonframework.messaging.core.reflection | reflection | 0.0 | 0 | 2 |
| 25 | axon-messaging-5.0.3 | org.axonframework.messaging.core.unitofwork.an... | annotation | 0.0 | 0 | 2 |
| 26 | axon-messaging-5.0.3 | org.axonframework.messaging.core.unitofwork.tr... | jdbc | 0.0 | 0 | 2 |
| 27 | axon-messaging-5.0.3 | org.axonframework.messaging.core.unitofwork.tr... | jpa | 0.0 | 0 | 2 |
| 28 | axon-messaging-5.0.3 | org.axonframework.messaging.core.configuration | configuration | 0.0 | 0 | 2 |
| 29 | axon-spring-boot-autoconfigure-5.0.3 | org.axonframework.extension.springboot.actuato... | axonserver | 0.0 | 0 | 2 |
- Show the top 30 packages with the highest Abstractness and number of Java Types
| artifactName | fullQualifiedPackageName | packageName | abstractness | numberAbstractTypes | numberTypes | |
|---|---|---|---|---|---|---|
| 146 | axon-common-5.0.3 | org.axonframework.common.function | function | 1.000000 | 2 | 2 |
| 147 | axon-common-5.0.3 | org.axonframework.common.tx | tx | 1.000000 | 1 | 1 |
| 148 | axon-messaging-5.0.3 | org.axonframework.messaging.eventhandling.proc... | streaming | 1.000000 | 1 | 1 |
| 149 | axon-spring-boot-autoconfigure-5.0.3 | org.axonframework.extension.springboot.actuator | actuator | 1.000000 | 1 | 1 |
| 144 | axon-messaging-5.0.3 | org.axonframework.messaging.commandhandling.co... | configuration | 0.750000 | 3 | 4 |
| 145 | axon-messaging-5.0.3 | org.axonframework.messaging.queryhandling.conf... | configuration | 0.750000 | 3 | 4 |
| 143 | axon-messaging-5.0.3 | org.axonframework.messaging.eventhandling.conf... | configuration | 0.714286 | 10 | 14 |
| 142 | axon-eventsourcing-5.0.3 | org.axonframework.eventsourcing.annotation | annotation | 0.700000 | 7 | 10 |
| 141 | axon-modelling-5.0.3 | org.axonframework.modelling.repository | repository | 0.625000 | 5 | 8 |
| 140 | axon-messaging-5.0.3 | org.axonframework.messaging.core.unitofwork.tr... | transaction | 0.600000 | 3 | 5 |
| 138 | axon-messaging-5.0.3 | org.axonframework.messaging.queryhandling.anno... | annotation | 0.571429 | 4 | 7 |
| 139 | axon-spring-boot-autoconfigure-5.0.3 | org.axonframework.extension.springboot.util | util | 0.571429 | 4 | 7 |
| 137 | axon-modelling-5.0.3 | org.axonframework.modelling.configuration | configuration | 0.538462 | 7 | 13 |
| 131 | axon-common-5.0.3 | org.axonframework.common.jdbc | jdbc | 0.500000 | 6 | 12 |
| 132 | axon-test-5.0.3 | org.axonframework.test.extension | extension | 0.500000 | 2 | 4 |
| 133 | axon-common-5.0.3 | org.axonframework.common.annotation | annotation | 0.500000 | 2 | 4 |
| 134 | axon-messaging-5.0.3 | org.axonframework.messaging.eventhandling.conv... | conversion | 0.500000 | 1 | 2 |
| 135 | axon-messaging-5.0.3 | org.axonframework.messaging.queryhandling.gateway | gateway | 0.500000 | 1 | 2 |
| 136 | axon-messaging-5.0.3 | org.axonframework.messaging.core.conversion | conversion | 0.500000 | 1 | 2 |
| 130 | axon-common-5.0.3 | org.axonframework.common.configuration | configuration | 0.478261 | 22 | 46 |
| 128 | axon-messaging-5.0.3 | org.axonframework.messaging.commandhandling | commandhandling | 0.473684 | 9 | 19 |
| 129 | axon-messaging-5.0.3 | org.axonframework.messaging.eventhandling | eventhandling | 0.473684 | 9 | 19 |
| 127 | axon-messaging-5.0.3 | org.axonframework.messaging.core.interception.... | annotation | 0.454545 | 5 | 11 |
| 125 | axon-test-5.0.3 | org.axonframework.test.fixture | fixture | 0.437500 | 14 | 32 |
| 126 | axon-messaging-5.0.3 | org.axonframework.messaging.eventstreaming | eventstreaming | 0.437500 | 7 | 16 |
| 123 | axon-modelling-5.0.3 | org.axonframework.modelling.entity.child | child | 0.428571 | 6 | 14 |
| 124 | axon-eventsourcing-5.0.3 | org.axonframework.eventsourcing | eventsourcing | 0.428571 | 3 | 7 |
| 122 | axon-messaging-5.0.3 | org.axonframework.messaging.queryhandling | queryhandling | 0.416667 | 10 | 24 |
| 119 | axon-messaging-5.0.3 | org.axonframework.messaging.commandhandling.di... | distributed | 0.400000 | 4 | 10 |
| 120 | axon-messaging-5.0.3 | org.axonframework.messaging.eventhandling.repl... | annotation | 0.400000 | 4 | 10 |
- Show the top 30 packages including their sub-packages with the highest package depth and lowest Abstractness
- Set the property "abstractnessIncludingSubpackages" on Package nodes.
| artifactName | fullQualifiedPackageName | packageName | abstractness | numberAbstractTypes | numberTypes | maxSubpackageDepth | |
|---|---|---|---|---|---|---|---|
| 0 | axon-metrics-micrometer-5.0.3 | org.axonframework.extension.metrics.micrometer | micrometer | 0.0 | 0 | 16 | 1 |
| 1 | axon-messaging-5.0.3 | org.axonframework.messaging.core.configuration | configuration | 0.0 | 0 | 5 | 1 |
| 2 | axon-spring-boot-autoconfigure-5.0.3 | org.axonframework.extension.springboot.autoconfig | autoconfig | 0.0 | 0 | 41 | 0 |
| 3 | axon-server-connector-5.0.3 | org.axonframework.axonserver.connector.event | event | 0.0 | 0 | 14 | 0 |
| 4 | axon-messaging-5.0.3 | org.axonframework.messaging.queryhandling.inte... | interception | 0.0 | 0 | 8 | 0 |
| 5 | axon-messaging-5.0.3 | org.axonframework.messaging.core.timeout | timeout | 0.0 | 0 | 8 | 0 |
| 6 | axon-messaging-5.0.3 | org.axonframework.messaging.commandhandling.in... | interception | 0.0 | 0 | 6 | 0 |
| 7 | axon-messaging-5.0.3 | org.axonframework.messaging.tracing.attributes | attributes | 0.0 | 0 | 6 | 0 |
| 8 | axon-update-5.0.3 | org.axonframework.update.api | api | 0.0 | 0 | 6 | 0 |
| 9 | axon-server-connector-5.0.3 | org.axonframework.axonserver.connector.command | command | 0.0 | 0 | 6 | 0 |
| 10 | axon-common-5.0.3 | org.axonframework.common.lifecycle | lifecycle | 0.0 | 0 | 5 | 0 |
| 11 | axon-tracing-opentelemetry-5.0.3 | org.axonframework.extension.tracing.opentelemetry | opentelemetry | 0.0 | 0 | 5 | 0 |
| 12 | axon-conversion-5.0.3 | org.axonframework.conversion.jackson | jackson | 0.0 | 0 | 5 | 0 |
| 13 | axon-conversion-5.0.3 | org.axonframework.conversion.converter | converter | 0.0 | 0 | 5 | 0 |
| 14 | axon-conversion-5.0.3 | org.axonframework.conversion.jackson2 | jackson2 | 0.0 | 0 | 5 | 0 |
| 15 | axon-messaging-5.0.3 | org.axonframework.messaging.monitoring.interce... | interception | 0.0 | 0 | 5 | 0 |
| 16 | axon-messaging-5.0.3 | org.axonframework.messaging.eventhandling.proc... | jpa | 0.0 | 0 | 4 | 0 |
| 17 | axon-update-5.0.3 | org.axonframework.update.detection | detection | 0.0 | 0 | 4 | 0 |
| 18 | axon-metrics-micrometer-5.0.3 | org.axonframework.extension.metrics.micrometer... | springboot | 0.0 | 0 | 4 | 0 |
| 19 | axon-messaging-5.0.3 | org.axonframework.messaging.eventhandling.inte... | interception | 0.0 | 0 | 3 | 0 |
| 20 | axon-messaging-5.0.3 | org.axonframework.messaging.eventhandling.proc... | inmemory | 0.0 | 0 | 3 | 0 |
| 21 | axon-messaging-5.0.3 | org.axonframework.messaging.core.configuration... | reflection | 0.0 | 0 | 3 | 0 |
| 22 | axon-test-5.0.3 | org.axonframework.test.server | server | 0.0 | 0 | 2 | 0 |
| 23 | axon-messaging-5.0.3 | org.axonframework.messaging.eventhandling.proc... | annotation | 0.0 | 0 | 2 | 0 |
| 24 | axon-messaging-5.0.3 | org.axonframework.messaging.core.reflection | reflection | 0.0 | 0 | 2 | 0 |
| 25 | axon-messaging-5.0.3 | org.axonframework.messaging.core.unitofwork.an... | annotation | 0.0 | 0 | 2 | 0 |
| 26 | axon-messaging-5.0.3 | org.axonframework.messaging.core.unitofwork.tr... | jdbc | 0.0 | 0 | 2 | 0 |
| 27 | axon-messaging-5.0.3 | org.axonframework.messaging.core.unitofwork.tr... | jpa | 0.0 | 0 | 2 | 0 |
| 28 | axon-spring-boot-autoconfigure-5.0.3 | org.axonframework.extension.springboot.actuato... | axonserver | 0.0 | 0 | 2 | 0 |
| 29 | axon-common-5.0.3 | org.axonframework.common.io | io | 0.0 | 0 | 1 | 0 |
- Show the top 30 packages including their sub-packages with the highest package depth and highest Abstractness
| artifactName | fullQualifiedPackageName | packageName | abstractness | numberAbstractTypes | numberTypes | maxSubpackageDepth | |
|---|---|---|---|---|---|---|---|
| 119 | axon-common-5.0.3 | org.axonframework.common.function | function | 1.000000 | 2 | 2 | 0 |
| 120 | axon-common-5.0.3 | org.axonframework.common.tx | tx | 1.000000 | 1 | 1 | 0 |
| 117 | axon-messaging-5.0.3 | org.axonframework.messaging.commandhandling.co... | configuration | 0.750000 | 3 | 4 | 0 |
| 118 | axon-messaging-5.0.3 | org.axonframework.messaging.queryhandling.conf... | configuration | 0.750000 | 3 | 4 | 0 |
| 116 | axon-messaging-5.0.3 | org.axonframework.messaging.eventhandling.conf... | configuration | 0.714286 | 10 | 14 | 0 |
| 115 | axon-modelling-5.0.3 | org.axonframework.modelling.repository | repository | 0.625000 | 5 | 8 | 0 |
| 114 | axon-messaging-5.0.3 | org.axonframework.messaging.queryhandling.anno... | annotation | 0.571429 | 4 | 7 | 0 |
| 113 | axon-eventsourcing-5.0.3 | org.axonframework.eventsourcing.annotation | annotation | 0.562500 | 9 | 16 | 1 |
| 112 | axon-modelling-5.0.3 | org.axonframework.modelling.configuration | configuration | 0.538462 | 7 | 13 | 0 |
| 105 | axon-spring-boot-autoconfigure-5.0.3 | org.axonframework.extension.springboot.util | util | 0.500000 | 4 | 8 | 1 |
| 106 | axon-common-5.0.3 | org.axonframework.common.jdbc | jdbc | 0.500000 | 6 | 12 | 0 |
| 107 | axon-test-5.0.3 | org.axonframework.test.extension | extension | 0.500000 | 2 | 4 | 0 |
| 108 | axon-common-5.0.3 | org.axonframework.common.annotation | annotation | 0.500000 | 2 | 4 | 0 |
| 109 | axon-messaging-5.0.3 | org.axonframework.messaging.eventhandling.conv... | conversion | 0.500000 | 1 | 2 | 0 |
| 110 | axon-messaging-5.0.3 | org.axonframework.messaging.queryhandling.gateway | gateway | 0.500000 | 1 | 2 | 0 |
| 111 | axon-messaging-5.0.3 | org.axonframework.messaging.core.conversion | conversion | 0.500000 | 1 | 2 | 0 |
| 104 | axon-common-5.0.3 | org.axonframework.common.configuration | configuration | 0.478261 | 22 | 46 | 0 |
| 103 | axon-messaging-5.0.3 | org.axonframework.messaging.core.interception.... | annotation | 0.454545 | 5 | 11 | 0 |
| 101 | axon-test-5.0.3 | org.axonframework.test.fixture | fixture | 0.437500 | 14 | 32 | 0 |
| 102 | axon-messaging-5.0.3 | org.axonframework.messaging.eventstreaming | eventstreaming | 0.437500 | 7 | 16 | 0 |
| 100 | axon-modelling-5.0.3 | org.axonframework.modelling.entity.child | child | 0.428571 | 6 | 14 | 0 |
| 97 | axon-messaging-5.0.3 | org.axonframework.messaging.commandhandling.di... | distributed | 0.400000 | 4 | 10 | 0 |
| 98 | axon-messaging-5.0.3 | org.axonframework.messaging.eventhandling.repl... | annotation | 0.400000 | 4 | 10 | 0 |
| 99 | axon-messaging-5.0.3 | org.axonframework.messaging.eventhandling.gateway | gateway | 0.400000 | 2 | 5 | 0 |
| 96 | axon-messaging-5.0.3 | org.axonframework.messaging.queryhandling | queryhandling | 0.380952 | 24 | 63 | 1 |
| 95 | axon-modelling-5.0.3 | org.axonframework.modelling | modelling | 0.380435 | 35 | 92 | 2 |
| 94 | axon-messaging-5.0.3 | org.axonframework.messaging.commandhandling.ga... | gateway | 0.375000 | 3 | 8 | 0 |
| 93 | axon-messaging-5.0.3 | org.axonframework.messaging.queryhandling.dist... | distributed | 0.363636 | 4 | 11 | 0 |
| 92 | axon-messaging-5.0.3 | org.axonframework.messaging.commandhandling | commandhandling | 0.359375 | 23 | 64 | 1 |
| 90 | axon-messaging-5.0.3 | org.axonframework.messaging.eventhandling.replay | replay | 0.357143 | 5 | 14 | 1 |
The main sequence is a imaginary line that represents a good compromise between Abstractness and Instability. A high distance to this line may indicate problems. For example is very stable (rigid) code with low abstractness hard to change.
Read more details on that in OO Design Quality Metrics and Calculate metrics.
- Show the top 30 packages with the highest distance from the "main sequence"
| artifactName | fullQualifiedName | name | distance | abstractness | instability | elementsCount | |
|---|---|---|---|---|---|---|---|
| 0 | axon-messaging-5.0.3 | org.axonframework.messaging.tracing.attributes | attributes | NaN | 0.0 | NaN | 6 |
| 1 | axon-conversion-5.0.3 | org.axonframework.conversion.converter | converter | NaN | 0.0 | NaN | 5 |
| 2 | axon-common-5.0.3 | org.axonframework.common.function | function | NaN | 1.0 | NaN | 2 |
| 3 | axon-messaging-5.0.3 | org.axonframework.messaging.core.reflection | reflection | NaN | 0.0 | NaN | 2 |
| 4 | axon-common-5.0.3 | org.axonframework.common.io | io | NaN | 0.0 | NaN | 1 |
| 5 | axon-common-5.0.3 | org.axonframework.common.digest | digest | NaN | 0.0 | NaN | 1 |
| 6 | axon-messaging-5.0.3 | org.axonframework.messaging.commandhandling.retry | retry | NaN | 0.0 | NaN | 1 |
| 7 | axon-metrics-micrometer-5.0.3 | org.axonframework.extension.metrics.micrometer... | reservoir | NaN | 0.0 | NaN | 1 |
| 8 | axon-spring-boot-autoconfigure-5.0.3 | org.axonframework.extension.springboot.actuator | actuator | NaN | 1.0 | NaN | 1 |
| 9 | axon-test-5.0.3 | org | org | NaN | 0.0 | NaN | 0 |
| 10 | axon-test-5.0.3 | org.axonframework | axonframework | NaN | 0.0 | NaN | 0 |
| 11 | axon-common-5.0.3 | org | org | NaN | 0.0 | NaN | 0 |
| 12 | axon-common-5.0.3 | org.axonframework | axonframework | NaN | 0.0 | NaN | 0 |
| 13 | axon-tracing-opentelemetry-5.0.3 | org | org | NaN | 0.0 | NaN | 0 |
| 14 | axon-tracing-opentelemetry-5.0.3 | org.axonframework | axonframework | NaN | 0.0 | NaN | 0 |
| 15 | axon-tracing-opentelemetry-5.0.3 | org.axonframework.extension | extension | NaN | 0.0 | NaN | 0 |
| 16 | axon-tracing-opentelemetry-5.0.3 | org.axonframework.extension.tracing | tracing | NaN | 0.0 | NaN | 0 |
| 17 | axon-eventsourcing-5.0.3 | org | org | NaN | 0.0 | NaN | 0 |
| 18 | axon-eventsourcing-5.0.3 | org.axonframework | axonframework | NaN | 0.0 | NaN | 0 |
| 19 | axon-conversion-5.0.3 | org | org | NaN | 0.0 | NaN | 0 |
| 20 | axon-conversion-5.0.3 | org.axonframework | axonframework | NaN | 0.0 | NaN | 0 |
| 21 | axon-messaging-5.0.3 | org | org | NaN | 0.0 | NaN | 0 |
| 22 | axon-messaging-5.0.3 | org.axonframework | axonframework | NaN | 0.0 | NaN | 0 |
| 23 | axon-messaging-5.0.3 | org.axonframework.messaging | messaging | NaN | 0.0 | NaN | 0 |
| 24 | axon-update-5.0.3 | org | org | NaN | 0.0 | NaN | 0 |
| 25 | axon-update-5.0.3 | org.axonframework | axonframework | NaN | 0.0 | NaN | 0 |
| 26 | axon-metrics-micrometer-5.0.3 | org | org | NaN | 0.0 | NaN | 0 |
| 27 | axon-metrics-micrometer-5.0.3 | org.axonframework | axonframework | NaN | 0.0 | NaN | 0 |
| 28 | axon-metrics-micrometer-5.0.3 | org.axonframework.extension | extension | NaN | 0.0 | NaN | 0 |
| 29 | axon-metrics-micrometer-5.0.3 | org.axonframework.extension.metrics | metrics | NaN | 0.0 | NaN | 0 |
- Show the top 30 packages including their sub-packages with the highest distance from the "main sequence"
| artifactName | fullQualifiedName | name | distance | abstractness | instability | elementsCount | |
|---|---|---|---|---|---|---|---|
| 0 | axon-common-5.0.3 | org.axonframework.common.lifecycle | lifecycle | 0.833333 | 0.000000 | 0.166667 | 5 |
| 1 | axon-conversion-5.0.3 | org.axonframework.conversion | conversion | 0.797901 | 0.142857 | 0.059242 | 35 |
| 2 | axon-common-5.0.3 | org.axonframework.common.infra | infra | 0.746348 | 0.250000 | 0.003652 | 8 |
| 3 | axon-messaging-5.0.3 | org.axonframework.messaging.eventhandling.proc... | token | 0.716378 | 0.129032 | 0.154589 | 31 |
| 4 | axon-messaging-5.0.3 | org.axonframework.messaging.core | core | 0.697023 | 0.279661 | 0.023316 | 236 |
| 5 | axon-update-5.0.3 | org.axonframework.update.api | api | 0.684211 | 0.000000 | 0.315789 | 6 |
| 6 | axon-messaging-5.0.3 | org.axonframework.messaging.commandhandling.co... | configuration | 0.678571 | 0.750000 | 0.928571 | 4 |
| 7 | axon-messaging-5.0.3 | org.axonframework.messaging.queryhandling.conf... | configuration | 0.678571 | 0.750000 | 0.928571 | 4 |
| 8 | axon-messaging-5.0.3 | org.axonframework.messaging.core.unitofwork | unitofwork | 0.675907 | 0.307692 | 0.016401 | 26 |
| 9 | axon-test-5.0.3 | org.axonframework.test.server | server | 0.666667 | 0.000000 | 0.333333 | 2 |
| 10 | axon-common-5.0.3 | org.axonframework.common.util | util | 0.575758 | 0.333333 | 0.090909 | 6 |
| 11 | axon-messaging-5.0.3 | org.axonframework.messaging.tracing | tracing | 0.529435 | 0.263158 | 0.207407 | 19 |
| 12 | axon-messaging-5.0.3 | org.axonframework.messaging.queryhandling.anno... | annotation | 0.523810 | 0.571429 | 0.952381 | 7 |
| 13 | axon-update-5.0.3 | org.axonframework.update.detection | detection | 0.500000 | 0.000000 | 0.500000 | 4 |
| 14 | axon-update-5.0.3 | org.axonframework.update.common | common | 0.500000 | 0.000000 | 0.500000 | 1 |
| 15 | axon-spring-boot-autoconfigure-5.0.3 | org.axonframework.extension.springboot.util.jpa | jpa | 0.500000 | 0.000000 | 0.500000 | 1 |
| 16 | axon-common-5.0.3 | org.axonframework.common.annotation | annotation | 0.499225 | 0.500000 | 0.000775 | 4 |
| 17 | axon-common-5.0.3 | org.axonframework.common.configuration | configuration | 0.491551 | 0.478261 | 0.030188 | 46 |
| 18 | axon-eventsourcing-5.0.3 | org.axonframework.eventsourcing.annotation | annotation | 0.474781 | 0.562500 | 0.912281 | 16 |
| 19 | axon-messaging-5.0.3 | org.axonframework.messaging.eventhandling.proc... | errorhandling | 0.435897 | 0.333333 | 0.230769 | 3 |
| 20 | axon-messaging-5.0.3 | org.axonframework.messaging.core.annotation | annotation | 0.434362 | 0.333333 | 0.232305 | 51 |
| 21 | axon-messaging-5.0.3 | org.axonframework.messaging.eventhandling | eventhandling | 0.430308 | 0.322981 | 0.246711 | 161 |
| 22 | axon-test-5.0.3 | org.axonframework.test.fixture | fixture | 0.423214 | 0.437500 | 0.985714 | 32 |
| 23 | axon-common-5.0.3 | org.axonframework.common.property | property | 0.416667 | 0.333333 | 0.250000 | 9 |
| 24 | axon-modelling-5.0.3 | org.axonframework.modelling.configuration | configuration | 0.415174 | 0.538462 | 0.876712 | 13 |
| 25 | axon-messaging-5.0.3 | org.axonframework.messaging.eventstreaming | eventstreaming | 0.405157 | 0.437500 | 0.157343 | 16 |
| 26 | axon-spring-boot-autoconfigure-5.0.3 | org.axonframework.extension.springboot.actuato... | axonserver | 0.400000 | 0.000000 | 0.600000 | 2 |
| 27 | axon-messaging-5.0.3 | org.axonframework.messaging.queryhandling.gateway | gateway | 0.400000 | 0.500000 | 0.900000 | 2 |
| 28 | axon-messaging-5.0.3 | org.axonframework.messaging.eventhandling.conf... | configuration | 0.388083 | 0.714286 | 0.673797 | 14 |
| 29 | axon-messaging-5.0.3 | org.axonframework.messaging.commandhandling | commandhandling | 0.375319 | 0.359375 | 0.265306 | 64 |
- Plot Abstractness vs. Instability of all packages
- Draw the "main sequence" as dashed green diagonal line
- Scale the packages by the number of types they contain
- Color the packages by their distance to the "main sequence" (blue=near, red=far)

