Skip to content

Commit 2e2e018

Browse files
committed
Report cyclic artifacts dependencies
1 parent 04a491d commit 2e2e018

File tree

2 files changed

+37
-0
lines changed

2 files changed

+37
-0
lines changed
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
//Cyclic Dependencies between Artifacts as unwinded List
2+
3+
MATCH (package:Package)-[:CONTAINS]->(forwardSource:Type)-[:DEPENDS_ON]->(forwardTarget:Type)<-[:CONTAINS]-(dependentPackage:Package)
4+
MATCH (dependentPackage)-[:CONTAINS]->(backwardSource:Type)-[:DEPENDS_ON]->(backwardTarget:Type)<-[:CONTAINS]-(package)
5+
MATCH (artifact:Artifact)-[:CONTAINS]->(package)
6+
MATCH (dependentArtifact:Artifact)-[:CONTAINS]->(dependentPackage)
7+
WITH artifact
8+
,dependentArtifact
9+
,package
10+
,dependentPackage
11+
,collect(DISTINCT forwardSource.name + '->' + forwardTarget.name) AS forwardDependencies
12+
,collect(DISTINCT backwardTarget.name + '<-' + backwardSource.name) AS backwardDependencies
13+
WITH artifact
14+
,dependentArtifact
15+
,package
16+
,dependentPackage
17+
,forwardDependencies
18+
,backwardDependencies
19+
,size(forwardDependencies) AS numberOfForwardDependencies
20+
,size(backwardDependencies) AS numberOfBackwardDependencies
21+
,size(forwardDependencies) + size(backwardDependencies) AS numberOfAllCyclicDependencies
22+
WHERE artifact <> dependentArtifact
23+
AND package <> dependentPackage
24+
AND (size(forwardDependencies) > size(backwardDependencies)
25+
OR (size(forwardDependencies) = size(backwardDependencies)
26+
AND size(package.fqn) >= size(dependentPackage.fqn)))
27+
UNWIND (backwardDependencies + forwardDependencies) AS dependency
28+
RETURN artifact.fileName AS artifactName
29+
,dependentArtifact.fileName AS dependentArtifactName
30+
,package.fqn AS packageName
31+
,dependentPackage.fqn AS dependentPackageName
32+
,dependency
33+
,toFloat(ABS(numberOfForwardDependencies - numberOfBackwardDependencies)) / numberOfAllCyclicDependencies AS forwardToBackwardBalance
34+
,numberOfForwardDependencies AS numberForward
35+
,numberOfBackwardDependencies AS numberBackward
36+
ORDER BY forwardToBackwardBalance DESC, packageName ASC

scripts/reports/InternalDependenciesCsv.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ PACKAGE_USAGE_CYPHER_DIR="${CYPHER_DIR}/Package_Usage"
3636

3737
execute_cypher "${CYCLIC_DEPENDENCIES_CYPHER_DIR}/Cyclic_Dependencies_as_List.cypher" > "${FULL_REPORT_DIRECTORY}/CyclicDependencies.csv"
3838
execute_cypher "${CYCLIC_DEPENDENCIES_CYPHER_DIR}/Cyclic_Dependencies_as_unwinded_List.cypher" > "${FULL_REPORT_DIRECTORY}/CyclicDependenciesUnwinded.csv"
39+
execute_cypher "${CYCLIC_DEPENDENCIES_CYPHER_DIR}/Cyclic_Dependencies_between_Artrifacts_as_unwinded_List.cypher" > "${FULL_REPORT_DIRECTORY}/CyclicArtifactDependenciesUnwinded.csv"
3940
execute_cypher "${CYPHER_DIR}/Candidates_for_Interface_Segregation.cypher" > "${FULL_REPORT_DIRECTORY}/InterfaceSegregationCandidates.csv"
4041
execute_cypher "${PACKAGE_USAGE_CYPHER_DIR}/List_types_that_are_used_by_many_different_packages.cypher" > "${FULL_REPORT_DIRECTORY}/WidelyUsedTypes.csv"
4142
execute_cypher "${PACKAGE_USAGE_CYPHER_DIR}/How_many_packages_compared_to_all_existing_are_used_by_dependent_artifacts.cypher" > "${FULL_REPORT_DIRECTORY}/ArtifactPackageUsage.csv"

0 commit comments

Comments
 (0)