A user of jQAssistant should be able to extend existing concepts.
Example: The constraints related by the Spring plugin report violations for generated code (e.g. by Maven plugins). Therefore these rules should exclude generated classes, but sadly there's no general concept to identify them.
The proposed solution is as follows:
The according Spring constraints require a (new) concept "java:GeneratedType" and filter by the label "Generated"
This concept itself does nothing except creating a report about artifacts containing Java types with that label
A user may create project concepts providing to "java:GeneratedType" setting this label
<concept id="java:GeneratedType">
<cypher><![CDATA[
MATCH
(a:Artifact)-[:CONTAINS]->(generated:Java:Type:Generated)
RETURN
a as Artifact, count(generated) as GeneratedTypes
]]></cypher>
</concept>
<concept id="my-project:GeneratedType">
<providesConcept refId="java:GeneratedType"
<cypher><![CDATA[
MATCH
(generated:Java:Type)
WHERE
generated.fqn starts with "com.acme.generated."
SET
generated:Generated
RETURN
count(generated) as GeneratedTypes
]]></cypher>
[x] We got a final feedback from the reporting user (if applicable)
[x] Unittests have been written (if applicable)
[x] Integration tests have been written (if applicable)
[x] Test coverage is the same or even better then before (if applicable)
[x] Documentation has been written (if applicable)
[x] Added a note on the new feature to the release notes (if applicable)
A user of jQAssistant should be able to extend existing concepts.
Example: The constraints related by the Spring plugin report violations for generated code (e.g. by Maven plugins). Therefore these rules should exclude generated classes, but sadly there's no general concept to identify them.
The proposed solution is as follows: