37 lines
1.6 KiB
Plaintext
37 lines
1.6 KiB
Plaintext
[[structure:Default]]
|
|
[role=group,includesConstraints="structure:mapping,structure:support-packages"]
|
|
|
|
Most of the time, the package structure under `org.springframework.data.neo4j` should reflect the main building parts.
|
|
|
|
[[structure:mapping]]
|
|
[source,cypher,role=constraint,requiresConcepts="dependency:Package"]
|
|
.The mapping package must not depend on any other SDN packages than `schema` and `convert`
|
|
----
|
|
MATCH (a:Main:Artifact)
|
|
OPTIONAL MATCH (a)-[:CONTAINS]->(s:Package) WHERE s.fqn in ['org.springframework.data.neo4j.core.schema', 'org.springframework.data.neo4j.core.convert']
|
|
WITH collect(s) as allowed, a
|
|
MATCH (a)-[:CONTAINS]->(p1:Package)-[:DEPENDS_ON]->(p2:Package)<-[:CONTAINS]-(a)
|
|
WHERE p1.fqn = 'org.springframework.data.neo4j.core.mapping'
|
|
AND NOT (p2 in allowed OR (p1) -[:CONTAINS]-> (p2))
|
|
RETURN p1,p2
|
|
----
|
|
|
|
[[structure:support-packages]]
|
|
[source,cypher,role=constraint,requiresConcepts="dependency:Package"]
|
|
.The public support packages must not depend directly on the mapping package
|
|
----
|
|
MATCH (a:Main:Artifact)
|
|
MATCH (a)-[:CONTAINS]->(p1:Package)
|
|
WHERE p1.fqn in [
|
|
'org.springframework.data.neo4j.core.convert',
|
|
'org.springframework.data.neo4j.core.schema',
|
|
'org.springframework.data.neo4j.core.support',
|
|
'org.springframework.data.neo4j.core.transaction'
|
|
]
|
|
WITH p1, a
|
|
MATCH (p1)-[:CONTAINS]->(t:Type)
|
|
MATCH (t)-[:DEPENDS_ON]->(t2:Type)<-[:CONTAINS]-(p2:Package)<-[:CONTAINS]-(a)
|
|
WHERE t2.fqn <> 'org.springframework.data.neo4j.core.mapping.Neo4jPersistentProperty'
|
|
AND p2.fqn = 'org.springframework.data.neo4j.core.mapping'
|
|
RETURN t
|
|
---- |