1. jQAssistant 1.10.0
1.1. Changes to the Plugins
1.1.1. Asciidoc Report Plugin 1.10.0
-
No changes in this version.
1.1.2. Java Plugin 1.10.0
-
No changes in this version.
1.1.3. EJB 3 Plugin 1.10.0
-
No changes in this version.
1.1.4. GraphML Plugin 1.10.0
-
No changes in this version.
1.1.5. GraphQL Plugin 1.10.0
-
No changes in this version.
1.1.6. Java Plugin 1.10.0
-
Add support for generic types, e.g.
(:Field)-[OF_GENERIC_TYPE]→(:ParameterizedType)
-
Added concept
java:GeneratedType
which can be extended by project specific concepts usingprovidesConcept
-
Added a
reason
attribute to@jQASuppress
to allow human-readable description for the suppression, e.g.@jQASuppress(value = "my-rules:SuppressedRule", reason = "This rule does not apply here.") public class MyClass { }
1.1.7. JPA 2 Plugin 1.10.0
No changes.
1.1.8. JUnit Plugin 1.10.0
1.1.8.1. Updated concepts
-
Added support for additional assert methods to concept
junit5:AssertMethod
.-
The concept now matches all methods in
org.junit.jupiter.api.Assertions
starting withassert
, thus now supportsassertThrows
andassertTimeout*
.
-
1.1.9. JAX RS Plugin 1.10.0
-
No changes in this version.
1.1.10. Java EE 6 Plugin 1.10.0
No changes.
1.1.11. JSON Plugin 1.10.0
-
No changes in this version.
1.1.12. M2 Repository Plugin 1.10.0
-
No changes in this version.
1.1.13. Maven 3 Plugin 1.10.0
-
No changes in this version.
1.1.14. OSGi Plugin 1.10.0
No changes.
1.1.15. RDBMS Plugin 1.10.0
-
No changes in this version.
1.1.16. Spring Plugin 1.10.0
-
Added constraint
spring-injection:BeanProducerMustNotBeInvokedDirectly
-
Allow dependencies from any Spring component to
@Component
annotated beans -
Defined primary columns for constraint results for better matching in SonarQube
-
Excluded generated Java types from Spring constraints, therefore the projects needs to extend the concept
java:GeneratedType
-
Excluded classes in test artifacts from constraint
spring-injection:InjectablesMustOnlyBeHeldInInjectables
1.1.17. TestNG Plugin 1.10.0
No changes.
1.1.18. Tycho Plugin 1.10.0
No changes.
1.1.19. XML Plugin 1.10.0
-
No changes in this version.
1.1.20. YAML Plugin 1.10.0
No changes.
1.1.21. YAML 2 Plugin 1.10.0
-
The set of YAML files processed by jQA can be now configured via the properties
yaml.file.include
andyaml.file.exclude
. Main contributor for this feature was Gerd Aschemann.
1.2. Changes to the Commandline Tool and Plugin for Maven
1.2.1. Plugin for Maven 1.10.0
-
No changes in this version.
1.2.2. Commandline Tool 1.10.0
-
No changes in this version.
1.3. Changes to Common Modules
1.3.1. Common Plugin 1.10.0
-
No changes in this version.
1.3.2. Core Framework 1.10.0
-
Concepts may provide to existing concepts to extend them, e.g. a pre-defined concept
java:GeneratedType
which is required by other rules (e.g. Spring related constraints) can be extended by a project specific conceptmy-project:GeneratedType
:<!-- pre-defined concept, e.g. from the Java plugin --> <concept id="java:GeneratedType"> <cypher><![CDATA[ MATCH (a:Artifact)-[:CONTAINS]->(generated:Java:Type:Generated) RETURN a as Artifact, count(generated) as GeneratedTypes ]]></cypher> </concept> <!-- project specific concept providing to the pre-defined concept --> <concept id="my-project:GeneratedType"> <cypher><![CDATA[ MATCH (generated:Java:Type) WHERE generated.fqn starts with "com.acme.generated" SET generated:Generated RETURN count(generated) as GeneratedTypes ]]></cypher> <providesConcept refId="java:GeneratedType"/> </concept>
Provided concepts may be used in Asciidoc and YAML files as well:
[[my-project:GeneratedType]] [source,cypher,role=concept,providesConcepts="java:GeneratedType"] ---- MATCH ... ----
concepts: - id: my-project:GeneratedType providesConcepts: - refId: java:GeneratedType source: | MATCH ...
-
A warning is logged if execution of a rule (concept/constraint) exceeds 5 seconds
-
The store is now available for custom report plugins via
ReportContext#getStore()
-
The XML Schema description for plugins for jQAssistant has been updated and is now available in version 1.10. Please update your existing plugins by using
xmlns:jpd="http://schema.jqassistant.org/plugin/v1.10"
as namespace declaration for your plugin descriptors. -
Starting with this version, it is recommended to assign a unique id to each plugin. In later versions of jQAssistant, this id can be used to refer to its plugin in the upcoming new configuration mechanism.
A possible plugin descriptor could look like this:<jpd:jqassistant-plugin xmlns:jpd="http://schema.jqassistant.org/plugin/v1.10" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schema.jqassistant.org/plugin/v1.10 https://schema.jqassistant.org/plugin/jqassistant-plugin-v1.10.xsd" name="myPlugin" id="myorganisation.myplugin"> </jpd:jqassistant-plugin>
-
Upgraded bundled AsciidoctorJ to 2.5.1
NoteThis might break plugins relying on the before used AsciidoctorJ 1.5 API. Migration is straight-forward and described here.
1.3.3. Neo4j Backend Version 1.10.0
-
Upgraded to Neo4j 3.5.28
2. jQAssistant 1.9.0
2.1. Changes to the Plugins
2.1.1. Asciidoc Report Plugin 1.9.0
-
The PlantUML diagram plugin now automatically selects GraphViz (prefered) or JDOT for rendering if not explicitly configured
2.1.2. CDI Plugin 1.9.0
No changes.
2.1.3. EJB 3 Plugin 1.9.0
No changes.
2.1.4. GraphML Plugin 1.9.0
No changes.
2.1.5. GraphQL Plugin 1.9.0
-
Added scanners for GraphQL schema files and URL introspection
2.1.6. Java Plugin 1.9.0
-
added concepts
java:PostConstruct
andjava:PreDestroy
-
improved concept
java:VirtualInvokes
to identify all potential non-abstract methods within the inheritance hierarchy that could be invoked -
upgraded to ASM 8.0 to support scanning of Java 14 bytecode
2.1.7. JPA 2 Plugin 1.10.0
-
No changes in this version.
2.1.8. JUnit Plugin 1.10.0
-
No changes in this version.
2.1.9. JAX RS Plugin 1.9.0
No changes.
2.1.10. Java EE 6 Plugin 1.9.0
No changes.
2.1.11. JSON Plugin 1.9.0
No changes.
2.1.12. M2 Repository Plugin 1.9.0
No changes.
2.1.13. Maven 3 Plugin 1.9.0
-
Removed deprecated graph model
(:Pom)-[:DECLARES_DEPENDENCY]->(:Maven:Artifact)
, it has been replaced by a model supporting exclusions:(:Pom)-[:DECLARES]->(dependency:Maven:Dependency)-[:TO_ARTIFACT]->(:Maven:Artifact), (dependency)-[:EXCLUDES]->(:Maven:Exclusion)
2.1.14. OSGi Plugin 1.9.0
No changes.
2.1.15. RDBMS Plugin 1.9.0
-
Method
createSchemas(Catalog, Store)
ofcom.buschmais.jqassistant.plugin.rdbms.impl.scanner.AbstractSchemaScannerPlugin
is now protected. This change allows users to create a customized variant of this plugin. You can find the corresponding PR here.
2.1.16. Spring Plugin 1.9.0
-
fixed false-positive constraint violations for constraint
InjectablesMustNotBeInstantiated
for constructors invoking constructors from their super class -
the constraint
spring-injection:FieldsOfInjectablesMustNotBeManipulated
now allows manipulating fields from lifecycle callbacks (@PostConstruct
and@PreDestroy
)
2.1.17. TestNG Plugin 1.9.0
No changes.
2.1.18. Tycho Plugin 1.9.0
No changes.
2.1.19. XML Plugin 1.9.0
No changes.
2.1.20. YAML Plugin 1.10.0
-
No changes in this version.
2.1.21. YAML 2 Plugin 1.10.0
-
No changes in this version.
2.2. Changes to the Commandline Tool and Plugin for Maven
2.2.1. Plugin for Maven 1.9.0
-
Added configuration setting
createReportArchive
to the analyze goal for creating a ZIP archive containing the generated reports -
Added store configuration options
encryption
,trustStrategy
andtrustCertificate
to control encryption for bolt connections to a Neo4j database -
Fixed a race condition for Maven builds running in multiple threads (e.g.
-T4
)
2.2.2. Commandline Tool 1.9.0
-
Added command line option
createReportArchive
to the analyze task for creating a ZIP archive containing the generated reports -
Added command line options
storeEncryption
,storeTrustStrategy
andstoreTrustCertificate
to control encryption for bolt connections to a Neo4j database
2.3. Changes to Common Modules
2.3.1. Common Plugin 1.9.0
No changes.
2.3.2. Core Framework 1.9.0
-
Fixed an issue for loading jQAssistant plugins on JDK 11
2.3.3. Neo4j Backend Version 1.9.0
-
Upgraded to Neo4j 3.5.24
3. jQAssistant 1.8.0
3.1. Changes to the Plugins
3.1.1. Asciidoc Report Plugin 1.8.0
-
Include Asciidoc Report plugin into jQAssistant main project. Note that for upgrading to 1.8 any existing dependency to the Asciidoc Report plugin from the contrib area must be removed
-
Renamed properties
asciidoc.report.plantuml.format
&asciidoc.report.plantuml.rendermode
toplantuml.report.format
&plantuml.report.rendermode
3.1.2. CDI Plugin 1.8.0
No changes.
3.1.3. EJB 3 Plugin 1.8.0
No changes.
3.1.4. GraphML Plugin 1.8.0
No changes.
3.1.5. Java Plugin 1.8.0
-
Added concept
java:VirtualDependsOn
providingVIRTUAL_DEPENDS_ON
relations based onDEPENDS_ON
relations to super classes -
Added concept
java:VirtualInvokes
providingVIRTUAL_INVOKES
relations representing virtual invocations -
Deprecated concept
java:InvokesOverriddenMethod
as it creates`INVOKES` relations that may be ambiguous (replaced byVIRTUAL_INVOKES
) -
Type members (i.e. fields and methods) are now reported only using their signature. Example:
com.acme.Foo#void doSomething()
is now reported asvoid doSomething()
-
Migrated the following concepts from the
Java 8
plugin into this plugin:-
java8:FunctionalInterface
→java:FunctionalInterface
-
java8:DefaultMethod
→java:DefaultMethod
-
java8:LambdaMethod
→java:LambdaMethod
-
Unresolved directive in 1.8.0.adoc - include::/C:\Work\Development\Projects\jqa-release-environment\jqa-manual\target/asciidoc-modules-documentation/com.buschmais.jqassistant.plugin/java8/asciidoc/releasenotes/1.8.0.adoc[leveloffset=2] :leveloffset: 2
4. JPA 2 Plugin 1.8.0
No changes.
4.1. JUnit Plugin 1.8.0
No changes.
4.2. JAX RS Plugin 1.8.0
No changes.
4.3. Java EE 6 Plugin 1.9.0
No changes.
4.4. JSON Plugin 1.8.0
No changes.
4.5. M2 Repository Plugin 1.8.0
No changes.
4.6. Maven 3 Plugin 1.8.0
-
Added plugin configuration options for scanning artifacts that are declared as dependencies to a Maven project (issue)
-
maven3.dependencies.scan
for enabling scanning dependencies -
maven3.dependencies.includes
andmaven3.dependencies.excludes
taking Maven artifact filters to control which artifact should be scanned
-
-
Added capability to scan URLs as part of scanIncludes
4.7. OSGi Plugin 1.8.0
No changes.
4.8. RDBMS Plugin 1.8.0
No changes.
4.9. Spring Plugin 1.8.0
-
Added meta-annotated Spring annotations to concepts, e.g.
@SpringBootApplication
will be also labeled with `Configuration -
Relaxed the constraint
spring-injection:InjectablesMustNotBeInstantiated
such that instantiation is allowed from either bean producer methods declared by injectables or non-injectables (issue) -
Relaxed the constraint
spring-injection:FieldsOfInjectablesMustNotBeManipulated
such that only fields of injectable types are checked for being written by non-constructor methods (issue) -
The constraints
spring-injection:FieldsOfInjectablesMustNotBeManipulated
,spring-injection:InjectablesMustNotBeHeldInStaticVariables
andspring-injection:InjectablesMustNotBeAccessedStatically
are improved such that also fields are considered where injectable types are injected by interfaces or super classes.
4.10. TestNG Plugin 1.8.0
No changes.
4.11. Tycho Plugin 1.8.0
No changes.
4.12. XML Plugin 1.8.0
No changes.
4.13. YAML Plugin 1.8.0
No changes.
4.14. Changes to the Commandline Tool and Plugin for Maven
4.14.1. Plugin for Maven 1.8.0
-
Added Asciidoc Report plugin to the jQA Maven plugin, i.e. it does no longer need to be added as explicit dependency
-
Removed configuration options for APOC and Graph Algorithms. These will be available as separate plugins, see APOC plugin and Graph Algorithms plugin.
-
Removed deprecated options
jqassistant.severity
,jqassistant.failOnViolations
,jqassistant.server.address
andjqassistant.server.port
4.14.2. Commandline Tool 1.8.0
-
Added Asciidoc Report plugin to CLI distribution
-
Removed commandline options
embeddedApocEnabled
embeddedGraphAlgorithmsEnabled
. These are now available as separate plugins, see APOC plugin and Graph Algorithms plugin
4.15. Changes to Common Modules
4.15.1. Common Plugin 1.8.0
No changes.
4.15.2. Core Framework 1.8.0
-
Fixed a StackOverflowError if a concepts requires itself, e.g. by using wildcards (see issue)
-
Changed the namespace for the XML schemas of rule, plugin and report descriptors and provided schema locations that can be resolved by editors/IDEs (see issue)
-
Changes for plugin developers:
-
Moved package
com.buschmais.jqassistant.core.analysis.api.rule
tocom.buschmais.jqassistant.rule.api.model
-
Moved package
com.buschmais.jqassistant.core.analysis.api.report
tocom.buschmais.jqassistant.report.api.model
-
Plugins using classes from these packages just need to adopt their imports, no other changes have been applied
-
-
Upgraded to XO 1.0.0
-
The release comes with a change that possibly breaks existing plugin implementations: property related annotations (e.g.
@Property
,@Relationship
) must be placed on Getters, an error will be reported at startup if such annotation is found on a Setter.
-
-
Removed APOC and Graph Algorithms libraries
4.15.3. Neo4j Backend Version 1.8.0
-
Upgraded to Neo4j 3.5.14
5. jQAssistant 1.7.0
5.1. Changes to the Plugins
5.1.1. CDI Plugin 1.7.0
No changes.
5.1.2. EJB 3 Plugin 1.7.0
No changes.
5.1.3. GraphML Plugin 1.7.0
No changes.
5.1.4. Java Plugin 1.7.0
-
Added annotation
@jQAsuppress
to allow suppression of annotated Java elements from rule results (similar to@java.lang.SuppressWarnings
). -
Added support for scanning Java 13 bytecode (upgraded ASM to 7.1)
Unresolved directive in 1.7.0.adoc - include::/C:\Work\Development\Projects\jqa-release-environment\jqa-manual\target/asciidoc-modules-documentation/com.buschmais.jqassistant.plugin/java8/asciidoc/releasenotes/1.7.0.adoc[leveloffset=2] :leveloffset: 2
6. JPA 2 Plugin 1.7.0
No changes.
6.1. JUnit Plugin 1.7.0
TBW.
6.2. JAX RS Plugin 1.7.0
No changes.
6.3. Java EE 6 Plugin 1.7.0
No changes.
6.4. JSON Plugin 1.7.0
No changes.
6.5. M2 Repository Plugin 1.7.0
-
Improved repository scanner to correctly handle SNAPSHOTS and build up a hierarchical GAV structure
-
Download artifacts from repository in background while scanning to improve performance
-
Default value of property
m2repo.artifacts.scan
changed tofalse
, i.e. only models are scanned by default
6.6. Maven 3 Plugin 1.7.0
-
Added a label
Effective
for:Maven:Pom
nodes to represent the effective model of a project or artifact -
Fixed a problem where in a multi module Maven project resolved dependencies between artifacts have been created multipe times
-
Improved graph model to support for exclusions on declared or managed dependencies:
(:Pom)-[:DECLARES]->(dependency:Maven:Dependency)-[:TO_ARTIFACT]->(:Maven:Artifact), (dependency)-[:EXCLUDES]->(:Maven:Exclusion)
Note
|
The previously used graph model (:Pom)-[:DECLARES_DEPENDENCY]->(:Maven:Artifact) is still supported but deprecated.
It will be removed in upcoming releases.
|
-
Fixed Maven project scanner to add label
:File
only to:Maven:Artifact
nodes if the corresponding Maven artifact has been scanned -
Upgraded Maven core and plugin dependencies to Maven 3.5.0
6.7. OSGi Plugin 1.7.0
No changes.
6.8. RDBMS Plugin 1.7.0
No changes.
6.9. Spring Plugin 1.7.0
-
Renamed relation representing virtual dependencies between components from DEPENDS_ON to VIRTUAL_DEPENDS_ON (issue)
6.10. TestNG Plugin 1.7.0
No changes.
6.11. Tycho Plugin 1.7.0
No changes.
6.12. XML Plugin 1.7.0
No changes.
6.13. YAML Plugin 1.7.0
No changes.
6.14. Changes to the Commandline Tool and Plugin for Maven
6.14.1. Plugin for Maven 1.7.0
-
Added configuration
graphAlgorithmsEnabled
for embedded server and system propertyjqassistant.embedded.graphAlgorithmsEnabled
6.14.2. Commandline Tool 1.7.0
-
Removed Neo4j V2 distribution
-
Renamed long option of
-u
for scanning URLs from--uris
to--urls
-
Added option
embeddedGraphAlgorithmsEnabled
6.15. Changes to Common Modules
6.15.1. Common Plugin 1.7.0
No changes.
6.15.2. Core Framework 1.7.0
-
Removed deprecated class
com.buschmais.jqassistant.core.report.api.AbstractReportPlugin
, report plugins must be migrated to implementcom.buschmais.jqassistant.core.report.api.ReportPlugin
-
A warning will now be logged if there is no rule source parser who is able to read and parse the rule source.
-
Fixed an issue where plugins could not register Asciidoctor extensions when used within the CLI
6.15.3. Neo4j Backend Version 1.7.0
-
Removed Neo4j v2 backend
-
Upgraded to Neo4j 3.5.7 and APOC 3.5.0.4
-
Added Neo4j graph algorithms library 3.5.4.0
-
Reduced size of database directory by limiting retention of Neo4j transaction logs
-
Added an unmanaged Neo4j extension that serves static content provided from classpath resources located in
7. jQAssistant 1.6.0
7.1. Changes to the Plugins
7.1.1. CDI Plugin 1.6.0
No changes for this version.
7.1.2. EJB 3 Plugin 1.6.0
No changes for this version.
7.1.3. GraphML Plugin 1.6.0
No changes for this version.
7.1.4. Java Plugin 1.6.0
-
Upgraded Java bytecode parser to ASM 7.0 for supporting Java 11 bytecode
Unresolved directive in 1.6.0.adoc - include::/C:\Work\Development\Projects\jqa-release-environment\jqa-manual\target/asciidoc-modules-documentation/com.buschmais.jqassistant.plugin/java8/asciidoc/releasenotes/1.6.0.adoc[leveloffset=2] :leveloffset: 2
8. JPA 2 Plugin 1.6.0
No changes for this version.
8.1. JUnit Plugin 1.6.0
TBW.
8.2. JAX RS Plugin 1.6.0
No changes for this version.
8.3. Java EE 6 Plugin 1.6.0
No changes for this version.
8.4. JSON Plugin 1.6.0
-
Fixed Cope with null scalar values in arrays. This ugly bug could prevent jQAssistant to scan projects with JSON files.
8.5. M2 Repository Plugin 1.6.0
No changes for this version.
8.6. Maven 3 Plugin 1.6.0
-
Resolve the dependency tree for the artifacts generated by a Maven project which can be queried by
MATCH (p:Maven:Project)-[:CREATES]→(a:Artifact)-[:DEPENDS_ON*]→(d:Artifact) RETURN *
-
Added to the documentation that the declared dependencies of a Maven plugin can be queried by using the outgoing
DECLARES_DEPENDENCY
relation of the node for a Maven plugin. -
The information of the SCM (Source Control Management) section of a POM is now also part of the graph model. The node for the SCM information can be queried with a query like
MATCH (p:Maven:Pom)-[:HAS_SCM]->(s:Maven:Scm) RETURN s
. -
The URL of the project home is now available as property of the node for the Maven POM and can be retrieved via the property
url
. A query to access the project home could be written asMATCH (p:Maven:Pom) RETURN p.url
.
8.7. OSGi Plugin 1.6.0
No changes for this version.
8.8. RDBMS Plugin 1.6.0
-
Fixed a problem in the documentation of the RDBMS scanner plugin, the file providing the database connection properties must be prefixed with
jqassistant.plugin.rdbms
.
8.9. Spring Plugin 1.6.0
No changes for this version.
8.10. TestNG Plugin 1.6.0
No changes for this version.
8.11. Tycho Plugin 1.6.0
No changes for this version.
8.12. XML Plugin 1.6.0
No changes for this version.
8.13. YAML Plugin 1.6.0
No changes for this version.
8.14. Changes to the Commandline Tool and Plugin for Maven
8.14.1. Plugin for Maven 1.6.0
-
Removed deprecated system property
jqassistant.server.address
and replaced it byjqassistant.embedded.listen_address
-
Removed deprecated system property
jqassistant.server.port
and replaced it byjqassistant.embedded.httpPort
8.14.2. Commandline Tool 1.6.0
-
The flag
-continueOnError
was activated by default, it is now deactivated and must be explicitly specified to skip errors during scanning -
Use a child-first classloading strategy for plugins, i.e. prefer classes that are provided by plugins over classes from the framework
-
Removed deprecated command line option
serverAddress
, replaced byembeddedListenAddress
-
Removed deprecated command line option
serverPort
, replaced byembeddedHttpPort
8.15. Changes to Common Modules
8.15.1. Common Plugin 1.6.0
@Dirk: Can you please add some notes on your changes?
8.15.2. Core Framework 1.6.0
No changes for this version.
8.15.3. Neo4j Backend Version 1.6.0
-
Upgraded to Neo4j 3.4.10
9. jQAssistant 1.5.0
9.1. Changes to the Plugins
9.1.1. Change of the Version Information of the Plugins
Starting with this release all plugins of jQAssistant will have the same three digit version number as the jQAssistant Commandline Distribution and the jQAssistant Plugin for Maven.
9.1.1.1. Example
According to our old version schema the Maven artifact coordinates would have been:
<dependency>
<groupId>com.buschmais.jqassistant.plugin</groupId>
<artifactId>java</artifactId>
<version>1.5</version>
</dependency>
With our new version schema for jQAssistant’s plugins the Maven artifact coordinates will be:
<dependency>
<groupId>com.buschmais.jqassistant.plugin</groupId>
<artifactId>java</artifactId>
<version>1.5.0</version>
</dependency>
9.1.2. CDI Plugin 1.5.0
No Changes.
9.1.3. EJB 3 Plugin 1.5.0
No changes for this release.
9.1.4. GraphML Plugin 1.5.0
No Changes.
9.1.5. Java Plugin 1.5.0
No Changes.
Unresolved directive in 1.5.0.adoc - include::/C:\Work\Development\Projects\jqa-release-environment\jqa-manual\target/asciidoc-modules-documentation/com.buschmais.jqassistant.plugin/java8/asciidoc/releasenotes/1.5.0.adoc[leveloffset=2] :leveloffset: 2
10. JPA 2 Plugin 1.5.0
No Changes.
10.1. JUnit Plugin 1.5.0
No Changes.
10.2. JAX RS Plugin 1.5.0
No Changes.
10.3. Java EE 6 Plugin 1.5.0
No Changes.
10.4. JSON Plugin 1.5.0
No Changes.
10.5. M2 Repository Plugin 1.5.0
No Changes.
10.6. Maven 3 Plugin 1.5.0
-
The Maven project scanner adds a label
Main
to the main artifact (e.g. classes compiled fromsrc/main/java
) andTest
to the test artifact ((e.g. classes compiled fromsrc/test/java
)
10.7. OSGi Plugin 1.5.0
No changes.
10.8. RDBMS Plugin 1.5.0
No Changes.
10.9. Spring Plugin 1.5.0
-
Ignore synthetic fields (e.g. generated by Groovy) for injection related constraints
10.10. TestNG Plugin 1.5.0
No Changes.
10.11. Tycho Plugin 1.5.0
No Changes.
10.12. XML Plugin 1.5.0
-
Added property
lineNumber
to:Xml:Document
,:Xml:Element
,:Xml:CData
and:Xml:Text
.
10.13. YAML Plugin 1.5.0
-
The YAML scanner now also accepts
yml
files -
Removed index from property
value
of:Value
labeled nodes to avoid problems with large strings and Neo4j 3.4 indexes
10.14. Changes to the Commandline Tool and Plugin for Maven
10.14.1. Plugin for Maven 1.5.0
-
Added a section
embedded
to thestore
configuration section allowing to configure the embedded Neo4j server (listen address, ports and APOC registration) -
Deprecated system property
jqassistant.server.address
and replaced it byjqassistant.embedded.listen_address
-
Deprecated system property
jqassistant.server.port
and replaced it byjqassistant.embedded.httpPort
-
Added system properties
jqassistant.embedded.boltPort
andjqassistant.embedded.apocEnabled
-
Fixed a problem that parallel builds could not be executed for scan/analyze goals (due to conflicting use of BOLT port)
-
Fixed a problem of skipped analysis due to wrong detection of last module in a reactor
10.14.2. Commandline Tool 1.5.0
-
Removed deprecated option
severity
from analyze task (replaced byfailOnSeverity
andwarnOnSeverity
) -
Deprecated option
serverAddress
, replaced byembeddedListenAddress
-
Deprecated option
serverPort
, replaced byembeddedHttpPort
-
Added options
embeddedBoltPort
andembeddedApocEnabled
10.15. Changes to Common Modules
10.15.1. Common Plugin 1.5.0
-
Removed additional label
Container
for directories, archives and artifacts as it was ambiguous.
10.15.2. Core Framework 1.5.0
-
Allow wildcards
*
and?
for referencing rules to be included in a group or required concepts -
Added
builder()
method tocom.buschmais.jqassistant.core.analysis.api.Result
to ease instance creation in script rules.
10.15.3. Neo4j Backend Version 1.5.0
-
Upgraded to Neo4j 3.4.8 and APOC 3.4.0.3
11. jQAssistant 1.4.0
-
Added a plugin providing rules for the Spring Framework.
11.1. Changes to the Plugins
11.1.1. CDI Plugin 1.4
No Changes.
11.1.2. EJB 3 Plugin 1.4
-
New concept
ejb3:Schedule
which labels all Java methods annotated with@javax.ejb.Schedule
with the labelSchedule
. -
New constraint
ejb3:ScheduleMethodInEjbContext
to ensure that scheduled methods are only allowed in EJBs
11.1.3. GraphML Plugin 1.4
No Changes.
11.1.4. Java Plugin 1.4
-
Added support for method variables in Java class scanner, i.e.
(:Method)-[:DECLARES]→(:Variable)
. -
Added support for XML based Property files. See Issue 1: Scan also XML based Property Files.
-
Added label 'ByteCode' for Java class elements (types, methods, fields, etc.)
-
Added support for Java 10
Unresolved directive in 1.4.0.adoc - include::/C:\Work\Development\Projects\jqa-release-environment\jqa-manual\target/asciidoc-modules-documentation/com.buschmais.jqassistant.plugin/java8/asciidoc/releasenotes/1.4.adoc[leveloffset=2] :leveloffset: 2
12. JPA 2 Plugin 1.4
No Changes.
12.1. JUnit Plugin 1.4
12.1.1. Support for Junit 5 added
This release adds JUnit 5 support to jQAssistant. See buschmais/jqa-junit-plugin#2.
12.1.2. Renamed constraints
-
Renamed
junit4:IgnoreWithoutMessage
tojunit:IgnoreWithoutMessage
because of added support for JUnit 5. -
Renamed
junit:IgnoreWithoutMessage
tojunit:AssertionMustProvideMessage
because of added support for JUnit 5. -
Renamed
junit4:TestMethodWithoutAssertion
tojunit:TestMethodWithoutAssertion
because of added support for JUnit 5.
12.2. JAX RS Plugin 1.4
No Changes.
12.3. Java EE 6 Plugin 1.4
No Changes.
12.4. JSON Plugin 1.4
-
Added support to exclude or include specific files via a simple filename pattern by setting the parameters
json.file.include
andjson.file.exclude
. -
Fixed wrong compiler settings to generate Java 7 bytecode instead of Java 8
12.5. M2 Repository Plugin 1.4
No Changes.
12.6. Maven 3 Plugin 1.4
-
Fixed wrong compiler settings to generate Java 7 bytecode instead of Java 8
12.7. OSGi Plugin 1.4
-
Only internal changes.
12.8. RDBMS Plugin 1.4
No Changes.
12.9. Spring Plugin 1.4
-
Initial checkin
12.10. TestNG Plugin 1.4
No Changes.
12.11. Tycho Plugin 1.4
No Changes.
12.12. XML Plugin 1.4
-
Fixed an NPE issue while scanning XML documents using Bolt protocol
12.13. YAML Plugin 1.4
-
Update to SnakeYAML 1.19
12.14. Changes to the Commandline Tool and Plugin for Maven
12.14.1. Plugin for Maven 1.4.0
-
Maven plugin automatically selects Neo4j v2 or Neo4j v3 depending on the available Java runtime environment
-
Users can now provide the severity for the configuration parameters
failOnSeverity
,warnOnSeverity
, andstoreLifecycle
also in lower case letters. -
Users can now provide the severity for the configuration parameter
failOnSeverity
andwarnOnSeverity
also in lower case. -
The plugin for Maven now logs the severity of constraint violations which will cause the build to fail before the analysis will start. It also logs the severity of constraint violations which will cause warnings but without failing the build.
-
Fixed a bug regarding wrong default values for
warnOnSeverity
andfailOnSeverity
12.14.2. Commandline Tool 1.4.0
-
Two separate commandline tool distributions are now provided: Neo4jv2 (Java 7) and Neo4jv3 (Java 8+, including APOC library)
-
jQAssistant now logs the severity of constraint violations which will cause jQAssistant to fail. It also logs the severity of constraint violations which will cause warnings.
-
Added
-daemon
parameter to server task
12.15. Changes to Common Modules
12.15.1. Common Plugin 1.4
-
Added a plugin that creates JUnit reports about all executed rules
-
Added a plugin that creates CSV reports is a concept or constraints selects "csv" as report type
12.15.2. Core Framework 1.4.0
-
Fixed a problem of parsing AsciiDoc files containing definition lists
-
API change (breaking): Added
ReportContext
as 1st parameter toReportPlugin#initialize
12.15.3. Neo4j Backend Version 1.4.0
-
Upgraded to Neo4j 2.3.12 and 3.4.0
-
Added Awesome Procedures On Cypher for Neo4j 3.4.0.1
13. jQAssistant 1.3.0
-
Added a plugin for scanning JSON documents.
13.1. Changes to the Plugins
13.1.1. CDI Plugin 1.3
-
Only internal changes.
13.1.2. EJB 3 Plugin 1.3
-
Only internal changes.
13.1.3. GraphML Plugin 1.3
-
Added support for nested sub graphs
-
Refactoring of internal graph representation to enable compatibility with newer Neo4j versions
13.1.4. Java Plugin 1.3
-
Added
firstLineNumber
,lastLineNumber
andeffectiveLineCount
attributes to:Method
nodes -
Deprecated concept
classpath:ResolveDependency
and replaced it byclasspath:ResolveDependsOn
-
classpath:ResolveDependsOn
propagatesweight
attribute ofDEPENDS_ON
relations
Unresolved directive in 1.3.0.adoc - include::/C:\Work\Development\Projects\jqa-release-environment\jqa-manual\target/asciidoc-modules-documentation/com.buschmais.jqassistant.plugin/java8/asciidoc/releasenotes/1.3.adoc[leveloffset=2] :leveloffset: 2
14. JPA 2 Plugin 1.3
-
Only internal changes.
14.1. JUnit Plugin 1.3
-
Only internal changes.
14.2. JAX RS Plugin 1.3
-
Only internal changes.
14.3. Java EE 6 Plugin 1.3
-
Only internal changes.
14.4. JSON Plugin 1.3
-
Initial release.
14.5. M2 Repository Plugin 1.3
-
Only internal changes.
14.6. Maven 3 Plugin 1.3
-
The plugin adds now also information on the organization behind a project to the generated graph. See Support for Organization information on GitHub.
14.7. OSGi Plugin 1.3
-
Only internal changes.
14.8. RDBMS Plugin 1.3
-
Only internal changes.
14.9. TestNG Plugin 1.3
-
Only internal changes.
14.10. Tycho Plugin 1.3
-
Only internal changes.
14.11. XML Plugin 1.3
-
Only internal changes.
14.12. YAML Plugin 1.3
-
Only internal changes.
14.13. Changes to the Commandline Tool and Plugin for Maven
14.13.1. Plugin for Maven 1.3.0
-
Added initial support for remote Neo4j 3.x databases (embedded or using bolt protocol)
-
Allow switching to Neo4j 3 using property
-Djqassistant.neo4jVersion=3
(experimental) -
Added 'store' configuration section providing configuration options for remote database instances
-
Added 'rule' configuration section providing default severities for groups, concepts and constraints
-
Deprecated configuration attributes
severity
andfailOnViolations
and replaced them withwarnOnSeverity
andfailOnSeverity
-
Fixed a problem where dependencies between types in different Maven modules have not been resolved
14.13.2. Commandline Tool 1.3.0
-
Maven coordinates changed from
com.buschmais.jqassistant:commandline
tocom.buschmais.jqassistant:jqassistant-commandline
. Therefore the name of the commandline distribution changed fromcommandline-1.3.0.zip
tojqassistant-commandline-1.3.0.zip
. -
Renamed command line option
severity
toviolationSeverity
, i.e. the threshold for exiting with an error code after at lease one rule has failed -
Added command line option
warnSeverity
to set the threshold for logging warnings about failed rules to the console -
Added command line options
defaultConceptSeverity
,defaultConstraintSeverity
anddefaultGroupSeverity
-
Added command line options
storeUri
,storeUsername
andstorePassword
for initial support of remote Neo4j 3.x databases
14.14. Changes to Common Modules
14.14.1. Common Plugin 1.3
-
Only internal changes.
14.14.2. Core Framework 1.3.0
-
Upgraded backend to support remote connections using Bolt protocol to existing Neo4j 3.x+ installations
-
Upgraded embedded Neo4j database to 2.3.10
-
Raised default severity for concepts to MINOR and constraints to MAJOR
-
Added support for default severities for groups, concepts and rules
-
Added
min
andmax
attributes to verification strategies for rule results
14.14.3. Neo4j Backend Version 1.3.0
-
Prepared support for Neo4j 3.x
15. jQAssistant 1.2.0
-
Improved the layout of the wording and the structure of the user manual of jQAssistant.
15.1. Changes to the Plugins
15.1.1. CDI Plugin 1.2
-
Maven coordinates changed from
com.buschmais.jqassistant.plugin:jqassistant.plugin.cdi
tocom.buschmais.jqassistant.plugin:cdi
. -
No functional changes to version 1.1.3.
15.1.2. EJB 3 Plugin 1.2
-
Maven coordinates changed from
com.buschmais.jqassistant.plugin:jqassistant.plugin.ejb3
tocom.buschmais.jqassistant.plugin:ejb3
. -
No functional changes since version 1.1.3.
15.1.3. GraphML Plugin 1.2
-
Maven coordinates changed from
com.buschmais.jqassistant.plugin:jqassistant.plugin.graphml
tocom.buschmais.jqassistant.plugin:graphml
. -
Fixed a bug where sub graphs have not been evaluated properly.
15.1.4. Java Plugin 1.2
-
Maven coordinates changed from
com.buschmais.jqassistant.plugin:jqassistant.plugin.java
tocom.buschmais.jqassistant.plugin:java
. -
Added attribute
weight
toDEPENDS_ON
relations between types -
Fixed a bug where redundant and cyclic DECLARES relations have been created between outer and their inner classes.
-
Annotation nodes are now also labeled with
Java
. -
Fixed a bug with where type resolution created multiple nodes when scanning directories with
java:classpath
scope. -
Added constant values for fields.
-
Added
DECLARES
relations between methods and their declared anonymous inner classes:(:Method)-[:DECLARES]->(:Type)
.
Unresolved directive in 1.2.0.adoc - include::/C:\Work\Development\Projects\jqa-release-environment\jqa-manual\target/asciidoc-modules-documentation/com.buschmais.jqassistant.plugin/java8/asciidoc/releasenotes/1.2.adoc[leveloffset=2] :leveloffset: 2
16. JPA 2 Plugin 1.2
-
Maven coordinates changed from
com.buschmais.jqassistant.plugin:jqassistant.plugin.jpa2
tocom.buschmais.jqassistant.plugin:jpa2
. -
No functional changes to version 1.1.3.
16.1. JUnit Plugin 1.2
-
Maven coordinates changed from
com.buschmais.jqassistant.plugin:jqassistant.plugin.junit
tocom.buschmais.jqassistant.plugin:junit
. -
No functional changes since version 1.1.3.
16.2. JAX RS Plugin 1.2
-
Maven coordinates changed from
com.buschmais.jqassistant.plugin:jqassistant.plugin.jaxrs
tocom.buschmais.jqassistant.plugin:jaxrs
. -
No functional changes to version 1.1.3.
16.3. Java EE 6 Plugin 1.2
-
Maven coordinates changed from
com.buschmais.jqassistant.plugin:jqassistant.plugin.javaee6
tocom.buschmais.jqassistant.plugin:javaee6
. -
Minor bugfix to ensure the scanning of packages in the classes folder of a WAR file.
-
No functional changes since version 1.1.3.
16.4. M2 Repository Plugin 1.2
-
Maven coordinates changed from
com.buschmais.jqassistant.plugin:jqassistant.plugin.m2repo
tocom.buschmais.jqassistant.plugin:m2repo
. -
No functional changes since version 1.1.3.
16.5. Maven 3 Plugin 1.2
-
Maven coordinates changed from
com.buschmais.jqassistant.plugin:jqassistant.plugin.maven3
tocom.buschmais.jqassistant.plugin:maven3
. -
No functional changes since version 1.1.3.
16.6. OSGi Plugin 1.2
-
Maven coordinates changed from
com.buschmais.jqassistant.plugin:jqassistant.plugin.osgi
tocom.buschmais.jqassistant.plugin:osgi
. -
No functional changes to version 1.1.3.
16.7. RDBMS Plugin 1.2
-
Maven coordinates changed from
com.buschmais.jqassistant.plugin:jqassistant.plugin.rdbms
tocom.buschmais.jqassistant.plugin:rdbms
. -
No functional changes since version 1.1.3.
16.8. TestNG Plugin 1.2
-
Maven coordinates changed from
com.buschmais.jqassistant.plugin:jqassistant.plugin.testng
tocom.buschmais.jqassistant.plugin:testng
. -
No functional changes since version 1.1.3.
16.9. Tycho Plugin 1.2
-
Maven coordinates changed from
com.buschmais.jqassistant.plugin:jqassistant.plugin.tycho
tocom.buschmais.jqassistant.plugin:tycho
. -
No functional changes since version 1.1.3.
16.10. XML Plugin 1.2
-
Maven coordinates changed from
com.buschmais.jqassistant.plugin:jqassistant.plugin.xml
tocom.buschmais.jqassistant.plugin:xml
. -
Added file pattern support (
xml.file.include
andxml.file.exclude
) for specifying XML documents without a native scanner plugin.
16.11. YAML Plugin 1.2
-
Maven coordinates changed from
com.buschmais.jqassistant.plugin:jqassistant.plugin.yaml
tocom.buschmais.jqassistant.plugin:yaml
. -
No functional changes since version 1.1.3.
16.12. Changes to the Commandline Tool and Plugin for Maven
16.12.1. Plugin for Maven 1.2.0
-
Maven coordinates changed from
com.buschmais.jqassistant.scm:jqassistant-maven-plugin
tocom.buschmais.jqassistant:jqassistant-maven-plugin
. -
Added support for rule parameters.
16.12.2. Commandline Tool 1.2.0
-
Added support for rule parameters.
16.13. Changes to Common Modules
16.13.1. Common Plugin 1.2
-
Maven coordinates changed from
com.buschmais.jqassistant.plugin:jqassistant.plugin.common
tocom.buschmais.jqassistant.plugin:common
. -
Added support for using file patterns (
file.include
andfile.exclude
) for scanner plugins.
16.13.2. Core Framework 1.2.0
-
Upgraded to Neo4j 2.3.8.
-
Added support for array properties in reports (e.g. HTML).
-
Added support for rule parameters.
16.13.3. Neo4j Backend Version 1.2.0
-
Upgraded to Neo4j 2.3.8.
17. jQAssistant 1.1.3
17.1. Core
-
Upgraded to Neo4j 2.3.3
-
Added support for severity on groups
-
Upgraded the XML schema for rules and plugins to 1.1 keeping backward compatibility to their 1.0 versions
-
Added rule specific report properties
-
Allow selection of a specific report type per rule
17.2. Maven
-
Added configuration property 'useExecutionRootAsProjectRoot' for reactors with incomplete parent hierarchies
-
Added configuration property 'executeAppliedConcepts' for repeated execution of concepts that have already been applied before (to ease development of concepts)
-
Added configuration property 'continueOnError' to continue scanning even if a plugin fails with an unrecoverable error
17.3. CLI
-
Added command line switch '-executeAppliedConcepts' (same functionality as for Maven plugin)
-
Added command line switch '-continueOnError' to continue scanning even if a plugin fails with an unrecoverable error
17.4. Plugins
17.4.1. Java
-
Added an attribute 'sourceFileName' to Java types representing the name of the file the class has been compiled from.
-
Fixed a bug to add a label 'Java' to nodes representing Java packages (e.g. :Java:Package)
17.4.2. GraphML
-
Replaced report plugin property "graphml.report.yedgraphml" with "graphml.report.decorator" which specifies the name of a class implementing the 'GraphMLDecorator' interface for layouting a graph (default: YedGraphMLDecorator)
17.4.3. JPA2
-
Fixed concept "jpa2:NamedQuery" to also support @NamedQuery annotations which are directly applied to an entity (e.g. without surrounding @NamedQueries)
17.4.4. JUnit
-
Added label "JUnit" to all nodes created by the test report scanner (e.g. ":JUnit:TestSuite", ":JUnit:TestCase")
-
Test report scanner now creates (:JUnit:TestCase)-[:HAS_FAILURE]→(:JUnit:Failure) and (:JUnit:TestCase)-[:HAS_ERROR]→(:JUnit:Error) providing detail information for test cases that have a result "FAILURE" or "ERROR"
17.5. SonarQube
-
Split-up of provisioning of rules into two mutually exclusive plugins "projectrules" (rules are defined within the Maven project) and "sonarrules" (administration of rules within SonarQube)
-
Migrated jQAssistant SonarQube plugins to support SonarQube 4.x/5.1.x (Note: compatibility with 3.x has been dropped)
18. jQAssistant 1.1.2
18.1. Core
-
Upgraded to Neo4j 2.3.2
18.2. Integrated Server
-
do not create "neo4j-home" in working directory when starting the integrated server
18.3. Plugins
18.3.1. YAML
-
No
:YAML:Value
node created for non-existing value anymore.
18.3.2. Maven
-
added a relation HAS_EFFECTIVE_MODEL from :Maven:Project to :Maven:Pom nodes representing the effective (i.e. interpolated) model of a Maven project containing all resolved dependencies, plugins, etc. == jQAssistant 1.1.1
18.4. Core
-
Upgraded to Neo4j 2.3.1
-
If a rule could not be executed the file name containing it is now part of the error message
-
Fixed rendering of an overridden severity for reporting a violation
18.5. Maven
-
fixed a bug where analyze and server goals were not executed at the end of a multi-module reactor if one of the modules defined the property "jqassistant.skip"
18.6. Plugins
18.6.1. Common
-
Use Apache commons compress for handling ZIP files for more robust handling of different encodings
18.6.2. Java
-
If an artifact requires a Java type (i.e. an external class reference) then an existing node of that type which is already required by a dependency will be re-used to reduce the number of generated nodes and avoid duplicates
-
Fixed concept dependency:Artifact to create unique relations
-
Fixed a problem that occurred while scanning invalid class files
18.6.3. JPA2
-
added support for scanning persistence.xml v2.1 documents
18.6.4. Maven
-
Fixed a problem that occurred where while scanning a reduced pom.xml file generated by the Maven shade plugin
19. jQAssistant 1.1.0
19.1. Core
-
Groups may be defined in AsciiDoc documents
-
Make sure that ids used for concepts, constraints or groups are unique nevertheless if they have been defined in XML or AsciiDoc documents
-
Upgraded to Neo4j 2.2.7
-
For plugin developers: marked the descriptor com.buschmais.jqassistant.core.store.api.model.NamedDescriptor as deprecated and replaced it by com.buschmais.jqassistant.plugin.common.api.model.NamedDescriptor, plugin implementations should use this type
19.2. Maven
-
Reset store (i.e. database) while building the root module of a project (was: execution root of Maven reactor)
-
Added serverAddress and serverPort parameters to jqassistant:server goal
19.3. CLI
-
Added serverAddress and serverPort parameters to server task
-
Fixed a problem that .adoc files containing rules have not been evaluated
19.4. Plugins
19.4.1. Common
-
All ZIP archives (i.e. ZIP, JAR, WAR and EAR) are now labeled with "Zip"
19.4.2. GraphML
-
Added plugin which provides a GraphML export for the results of executed concepts, includes support for virtual elements (sub graphs, nodes, relationships)
19.4.3. JUnit
-
Fixed an exception which has been logged during Maven build while parsing surefire and failsafe reports
19.4.4. Maven Repository
-
Resolve the POM model to provide full information about dependencies, plugins, etc.
-
Added properties for filtering artifacts while scanning
-
Added a relation CONTAINS_POM from the repository to each contained POM model (:Maven:Pom:Xml)
19.4.5. Tycho
-
Upgraded scanner plugin to to Tycho 0.23.1 to fix compatibility issues
19.4.6. URL
-
Added support for basic authentication for scanning URLs, e.g. http://user:secret@host/file
19.4.7. YAML
-
Added plugin which provides a scanner for YAML files
19.5. Documentation
-
Added an example to demonstrate using rules in AsciiDoc documents == jQAssistant 1.0.0
19.6. Core
19.6.1. Store
-
Upgraded to Neo4j 2.2.1
19.6.2. Analysis
-
added explicit verification strategies for executable rules
-
clarified behavor of concepts and constraints regarding to configured severities
19.7. Maven
-
Fixed problems of report goal in site lifecycle
-
Allow Maven plugin to be configured as build extension
19.8. Plugins
19.8.1. Java
-
Scanner adds a property "md5" containing the hash sum to each scanned class.
-
Scanner adds a property "byteCodeVersion" to each scanned class and "cyclomaticComplexity" to each scanned method
-
Added a new concept "java:JavaVersion": Set a human readable property "javaVersion" on a class file based on its byte code version
-
Referenced types are now also resolved using the transitive dependencies of the containing artifact
19.8.2. RDBMS
-
Database schemas may be scanned from the command line without creating a specific property file
19.8.3. Plugin API
-
ReportPlugin#setResult now takes a 'Result<? extends ExecutableRule>' as parameter (instead of 'Result<? extends Rule>')
19.8.4. XML
-
Prevent online schema lookups for DTDs while parsing documents
20. jQAssistant 1.0.0-RC1
20.1. Core
20.1.1. General
-
reduced amount of log messages printed on the console while running
20.1.2. Scanner
-
introduced pluggable scopes for identifying file and url types, e.g. 'maven:repository' or 'java:classpath'
20.1.3. Rules
-
added support for writing rules using AsciiDoc
-
added support for rules written in script languages (e.g. Ruby, Groovy, JavaScript etc.) using the Java Scripting API (JSR-223)
20.2. Maven plugin
-
minimum requirement has been changed to Apache Maven 3.2.x
-
added support for scopes: scope element in scanIncludes and a new goal available-scopes
-
allow multi-threaded maven builds
20.3. Command line
-
added command line support for scopes, e.g. scan -f java:classpath::/My/ClassPath/
20.4. Plugins
20.4.1. Facelet
-
added facelet plugin providing a scanner for JSF 2.x XHTML based views
20.4.2. Java
-
scanner adds DEPENDS_ON relations between Java types during scan, the corresponding concepts have been removed
-
referenced Java types are only resolved within the same artifact or dependencies thereof, unresolvable types will be referenced by a REQUIRES relation from the artifact.
20.4.3. Java EE 6
-
added scanners for EAR archives and application.xml descriptors
-
added scanners for WAR archives and web.xml descriptors
20.4.4. JUnit
-
renamed JUnit4 plugin to JUnit as it also contains rules for JUnit3
-
added a concept 'junit4:SuiteClass'
-
added a group 'junit4:Default' including all defined constraints for JUnit4
20.4.5. Maven
-
added a plugin for scanning pom.xml files providing access to dependency management, plugins, profiles, etc.
20.4.6. Maven Repository
-
added Maven 2 Repository plugin (m2repo) containing a scanner for incremental scans of remote repositories
20.4.7. RDBMS
-
added RDBMS plugin containing a scanner to import schema metadata from relational databases
20.4.8. TestNG
-
added TestNG plugin containing concepts
20.4.9. XML
-
added XML plugin containing a generic scanner for XML files
20.5. Plugin API
-
added annotation @Requires for scanner plugins to build dependency chains
-
added mandatory "name" attribute to jqassistant-plugin element of jqassistant-plugin.xml descriptors
-
moved file related model classes from package 'c.b.j.core.store.api.model' to 'c.b.j.plugin.common.api.model' == jQAssistant 1.0.0-M4
20.6. General
-
license changed from ASL 2.0 to GPLv3 to solve compatibility issues with Neo4j community edition
20.7. Core
20.7.1. Scanner
-
major performance improvements, especially for larger projects
-
all scanned files are represented with a file label, even if no scanner actually accepts the file type
-
a public API for scanner plugins is now provided, an example for SCV files is available in the documentation
20.7.2. Analysis
-
constraints and concepts provide a severity
20.8. Maven plugin
-
added support for additional scan directories (scanDirectories) and rule directories (rulesDirectories)
-
added 'skip' property for excluding single modules from scan
-
renamed property 'failOnConstraintViolations' to 'failOnViolations'
-
include JUnit test reports in scan
-
better support for multi-module projects
20.9. Command line
-
added downloadable distribution providing a standalone CLI including shell scripts for Windows and Unix compatible systems
20.10. Sonar
-
provide all plugins of jQAssistant distribution in sonar plugin
20.11. Plugins
20.11.1. Java
-
added scanner support for Java 8 bytecode
-
new concepts for throwable types are now provided
20.11.2. Java 8
-
added concepts for functional interfaces and default methods
20.11.3. JUnit4
-
new concepts for lifecycle annotations (@Before, @After, @BeforeClass, @AfterClass)
-
new concepts for JUnit3 tests
-
split up of concept "junit4:TestClassOrMethod" into "junit4:TestClass" and "junit4:TestMethod"
-
added constraints for unit tests
20.11.4. CDI
-
new plugin containing a scanner for beans.xml descriptors, concepts and constrains
20.12. Documentation
-
explanation of rule types added (concepts, constraints, groups)
-
an example is provided for distributing plugins containing rules