jQA 2.3 released

129 views
Skip to first unread message

Dirk Mahler

unread,
Jul 2, 2024, 11:27:28 AM7/2/24
to jqass...@googlegroups.com
Hi folks,

we would like to announce the new jQAssistant 2.3 release! It comes
with the following new features:

1. Abstract and Provided Concepts

A concept or even a group can now "provide" other concepts. This allows
extreme flexibility in creating rule plugins containing generic
constraints where concrete frameworks are not known yet. Let's have a
look at an example:

The jQAssistant Java plugin comes with a constraint
"java:TestMethodWithoutAssertion" which requires the concepts
"java:TestMethod" and "java:AssertMethod".

The jQAssistant JUnit plugin implements a concept "junit5:TestMethod"
that identifies test methods based on JUnit 5 annotations and
provides the labels defined by the concept "java:TestMethod". Similar
there are concepts for identifying JUnit 5 assertions providing the
labels for "java:AssertMethod". 
The constraint "java:TestMethodWithoutAssertion" will now implicitly
require the JUnit 5 concepts.
The same mechanism is used for JUnit 3 and 4 APIs and can easily be
extended for other frameworks (e.g. Mockito, AssertJ and Hamcrest). A
project in the same way can create its own concepts for identifying its
own assertions if necessary.

We've been working on this mechanism since a while and consider it a
powerful feature! And of course we're already making heavy use of this
mechanism , e.g. in our Spring plugin
https://github.com/jqassistant-plugin/jqassistant-spring-plugin/blob/master/src/main/resources/META-INF/jqassistant-rules/spring-component.xml

(BTW: Spring is gives an interesting analogy here as you can compare
abstract and provided concepts with dependency injection)

For further information read the "Rules" section in the manual:
https://jqassistant.github.io/jqassistant/doc/2.3.1/#_rules

2. Improved HTML report and rule graph

The result of an "analyze" task may be converted to an HTML report
executing "mvn jqassistant:report" (Maven) or running "jqassistant.sh
report" (CLI). This report has been extended to also show the required
and provided concepts for each rule (including a clickable reference).

Furthermore the "analyze" task now creates a graph of all executed
rules including their status and relations in the database making it
easier to diagnose missing or wrong results. Just check for the labels
:Concept, :Constraint and :Group in combination with :jQAssistant.

3. Further improvements

- We added a new report type "json" for concepts and constraints to
allow importing data into tools or dashboards
- Constraints may be excluded by using the configuration property
"jqassistant.analyze.exclude-constraints" which simply takes a list of
ids
- Files with the extension ".xml" are now scanned by default (similar
to ".json" or ".yml")
- jQAssistant is now distributed with CycloneDX SBOMs in JSON and XML
format (to ease supply chain analysis in security sensitive
environments)

The latest release is 2.3.1. Please check the quick start section of
the manual for instructions on downloading
(https://jqassistant.github.io/jqassistant/doc/2.3.1/#_quickstart)

A full release notes history is available here:
https://jqassistant.github.io/jqassistant/doc/2.3.1/release-notes.html

Enjoy!

Dirk

--
Senior Consultant IT
-----------------------------------------------------------------
BUSCHMAIS GbR
Inhaber Torsten Busch, Frank Schwarz, Dirk Mahler, Tobias Israel
Adresse Leipziger Straße 93, 01127 Dresden
Telefon +49 351 320923-0
Mobil +49 177 3137411
Fax +49 351 320923-29
E-Mail dirk....@buschmais.com
Internet www.buschmais.de
-----------------------------------------------------------------
Reply all
Reply to author
Forward
0 new messages