1. jQAssistant 1.8.0
1.1. Changes to the Plugins
1.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
1.1.2. CDI Plugin 1.8.0
No changes.
1.1.3. EJB 3 Plugin 1.8.0
No changes.
1.1.4. GraphML Plugin 1.8.0
No changes.
1.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
-
1.1.6. Java 8 Plugin 1.8.0
-
This plugin has been deprecated, the concepts have been migrated to the Java plugin:
-
java8:FunctionalInterface
→java:FunctionalInterface
-
java8:DefaultMethod
→java:DefaultMethod
-
java8:LambdaMethod
→java:LambdaMethod
-
1.1.7. JPA 2 Plugin 1.8.0
No changes.
1.1.8. JUnit Plugin 1.8.0
No changes.
1.1.9. JAX RS Plugin 1.8.0
No changes.
1.1.10. Java EE 6 Plugin 1.8.0
No changes.
1.1.11. JSON Plugin 1.8.0
No changes.
1.1.12. M2 Repository Plugin 1.8.0
No changes.
1.1.13. 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
1.1.14. OSGi Plugin 1.8.0
No changes.
1.1.15. RDBMS Plugin 1.8.0
No changes.
1.1.16. 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.
1.1.17. TestNG Plugin 1.8.0
No changes.
1.1.18. Tycho Plugin 1.7.0
No changes.
1.1.19. XML Plugin 1.8.0
No changes.
1.1.20. YAML Plugin 1.8.0
No changes.
1.2. Changes to the Commandline Tool and Plugin for Maven
1.2.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
1.2.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
1.3. Changes to Common Modules
1.3.1. Common Plugin 1.8.0
No changes.
1.3.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
1.3.3. Neo4j Backend Version 1.8.0
-
Upgraded to Neo4j 3.5.14
2. jQAssistant 1.7.0
2.1. Changes to the Plugins
2.1.1. CDI Plugin 1.7.0
No changes.
2.1.2. EJB 3 Plugin 1.7.0
No changes.
2.1.3. GraphML Plugin 1.7.0
No changes.
2.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)
2.1.5. Java 8 Plugin 1.7.0
No changes.
2.1.6. JPA 2 Plugin 1.7.0
No changes.
2.1.7. JUnit Plugin 1.7.0
TBW.
2.1.8. JAX RS Plugin 1.7.0
No changes.
2.1.9. Java EE 6 Plugin 1.7.0
No changes.
2.1.10. JSON Plugin 1.7.0
No changes.
2.1.11. 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
2.1.12. 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
2.1.13. OSGi Plugin 1.7.0
No changes.
2.1.14. RDBMS Plugin 1.7.0
No changes.
2.1.15. Spring Plugin 1.7.0
-
Renamed relation representing virtual dependencies between components from DEPENDS_ON to VIRTUAL_DEPENDS_ON (issue)
2.1.16. TestNG Plugin 1.7.0
No changes.
2.1.17. Tycho Plugin 1.7.0
No changes.
2.1.18. XML Plugin 1.7.0
No changes.
2.1.19. YAML Plugin 1.7.0
No changes.
2.2. Changes to the Commandline Tool and Plugin for Maven
2.2.1. Plugin for Maven 1.7.0
-
Added configuration
graphAlgorithmsEnabled
for embedded server and system propertyjqassistant.embedded.graphAlgorithmsEnabled
2.2.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
2.3. Changes to Common Modules
2.3.1. Common Plugin 1.7.0
No changes.
2.3.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
2.3.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
3. jQAssistant 1.6.0
3.1. Changes to the Plugins
3.1.1. CDI Plugin 1.6.0
No changes for this version.
3.1.2. EJB 3 Plugin 1.6.0
No changes for this version.
3.1.3. GraphML Plugin 1.6.0
No changes for this version.
3.1.4. Java Plugin 1.6.0
-
Upgraded Java bytecode parser to ASM 7.0 for supporting Java 11 bytecode
3.1.5. Java 8 Plugin 1.6.0
No changes for this version.
3.1.6. JPA 2 Plugin 1.6.0
No changes for this version.
3.1.7. JUnit Plugin 1.6.0
TBW.
3.1.8. JAX RS Plugin 1.6.0
No changes for this version.
3.1.9. Java EE 6 Plugin 1.6.0
No changes for this version.
3.1.10. 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.
3.1.11. M2 Repository Plugin 1.6.0
No changes for this version.
3.1.12. 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
.
3.1.13. OSGi Plugin 1.6.0
No changes for this version.
3.1.14. 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
.
3.1.15. Spring Plugin 1.6.0
No changes for this version.
3.1.16. TestNG Plugin 1.6.0
No changes for this version.
3.1.17. Tycho Plugin 1.6.0
No changes for this version.
3.1.18. XML Plugin 1.6.0
No changes for this version.
3.1.19. YAML Plugin 1.6.0
No changes for this version.
3.2. Changes to the Commandline Tool and Plugin for Maven
3.2.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
3.2.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
3.3. Changes to Common Modules
3.3.1. Common Plugin 1.6.0
@Dirk: Can you please add some notes on your changes?
3.3.2. Core Framework 1.6.0
No changes for this version.
3.3.3. Neo4j Backend Version 1.6.0
-
Upgraded to Neo4j 3.4.10
4. jQAssistant 1.5.0
4.1. Changes to the Plugins
4.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.
4.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>
4.1.2. CDI Plugin 1.5.0
No Changes.
4.1.3. EJB 3 Plugin 1.5.0
No changes for this release.
4.1.4. GraphML Plugin 1.5.0
No Changes.
4.1.5. Java Plugin 1.5.0
No Changes.
4.1.6. Java 8 Plugin 1.5.0
No Changes.
4.1.7. JPA 2 Plugin 1.5.0
No Changes.
4.1.8. JUnit Plugin 1.5.0
No Changes.
4.1.9. JAX RS Plugin 1.5.0
No Changes.
4.1.10. Java EE 6 Plugin 1.5.0
No Changes.
4.1.11. JSON Plugin 1.5.0
No Changes.
4.1.12. M2 Repository Plugin 1.5.0
No Changes.
4.1.13. 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
)
4.1.14. OSGi Plugin 1.5.0
No changes.
4.1.15. RDBMS Plugin 1.5.0
No Changes.
4.1.16. Spring Plugin 1.5.0
-
Ignore synthetic fields (e.g. generated by Groovy) for injection related constraints
4.1.17. TestNG Plugin 1.5.0
No Changes.
4.1.18. Tycho Plugin 1.5.0
No Changes.
4.1.19. XML Plugin 1.5.0
-
Added property
lineNumber
to:Xml:Document
,:Xml:Element
,:Xml:CData
and:Xml:Text
.
4.1.20. 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
4.2. Changes to the Commandline Tool and Plugin for Maven
4.2.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
4.2.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
4.3. Changes to Common Modules
4.3.1. Common Plugin 1.5.0
-
Removed additional label
Container
for directories, archives and artifacts as it was ambiguous.
4.3.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.
4.3.3. Neo4j Backend Version 1.5.0
-
Upgraded to Neo4j 3.4.8 and APOC 3.4.0.3
5. jQAssistant 1.4.0
-
Added a plugin providing rules for the Spring Framework.
5.1. Changes to the Plugins
5.1.1. CDI Plugin 1.4
No Changes.
5.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
5.1.3. GraphML Plugin 1.4
No Changes.
5.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
5.1.5. Java 8 Plugin 1.4
-
Added concept
java8:LambdaMethod
for identifying lambda expressions
5.1.6. JPA 2 Plugin 1.4
No Changes.
5.1.7. JUnit Plugin 1.4
5.1.7.1. Support for Junit 5 added
This release adds JUnit 5 support to jQAssistant. See buschmais/jqa-junit-plugin#2.
5.1.7.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.
5.1.8. JAX RS Plugin 1.4
No Changes.
5.1.9. Java EE 6 Plugin 1.4
No Changes.
5.1.10. 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
5.1.11. M2 Repository Plugin 1.4
No Changes.
5.1.12. Maven 3 Plugin 1.4
-
Fixed wrong compiler settings to generate Java 7 bytecode instead of Java 8
5.1.13. OSGi Plugin 1.4
-
Only internal changes.
5.1.14. RDBMS Plugin 1.4
No Changes.
5.1.15. Spring Plugin 1.4
-
Initial checkin
5.1.16. TestNG Plugin 1.4
No Changes.
5.1.17. Tycho Plugin 1.4
No Changes.
5.1.18. XML Plugin 1.4
-
Fixed an NPE issue while scanning XML documents using Bolt protocol
5.1.19. YAML Plugin 1.4
-
Update to SnakeYAML 1.19
5.2. Changes to the Commandline Tool and Plugin for Maven
5.2.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
5.2.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
5.3. Changes to Common Modules
5.3.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
5.3.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
5.3.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
6. jQAssistant 1.3.0
-
Added a plugin for scanning JSON documents.
6.1. Changes to the Plugins
6.1.1. CDI Plugin 1.3
-
Only internal changes.
6.1.2. EJB 3 Plugin 1.3
-
Only internal changes.
6.1.3. GraphML Plugin 1.3
-
Added support for nested sub graphs
-
Refactoring of internal graph representation to enable compatibility with newer Neo4j versions
6.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
6.1.5. Java 8 Plugin 1.3
-
Fix for bug Concept
java8:FunctionalInterface
is not complete. Now the Java 8 plugin labels all Java interfaces withFunctionalInterface
if it has exact on abstract method. Prior to that fix only Interfaces with the annotation@java.lang.FunctionalInterface
where recognized as functional interface.
6.1.6. JPA 2 Plugin 1.3
-
Only internal changes.
6.1.7. JUnit Plugin 1.3
-
Only internal changes.
6.1.8. JAX RS Plugin 1.3
-
Only internal changes.
6.1.9. Java EE 6 Plugin 1.3
-
Only internal changes.
6.1.10. JSON Plugin 1.3
-
Initial release.
6.1.11. M2 Repository Plugin 1.3
-
Only internal changes.
6.1.12. 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.
6.1.13. OSGi Plugin 1.3
-
Only internal changes.
6.1.14. RDBMS Plugin 1.3
-
Only internal changes.
6.1.15. TestNG Plugin 1.3
-
Only internal changes.
6.1.16. Tycho Plugin 1.3
-
Only internal changes.
6.1.17. XML Plugin 1.3
-
Only internal changes.
6.1.18. YAML Plugin 1.3
-
Only internal changes.
6.2. Changes to the Commandline Tool and Plugin for Maven
6.2.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
6.2.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
6.3. Changes to Common Modules
6.3.1. Common Plugin 1.3
-
Only internal changes.
6.3.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
6.3.3. Neo4j Backend Version 1.3.0
-
Prepared support for Neo4j 3.x
7. jQAssistant 1.2.0
-
Improved the layout of the wording and the structure of the user manual of jQAssistant.
7.1. Changes to the Plugins
7.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.
7.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.
7.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.
7.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)
.
7.1.5. Java 8 Plugin 1.2
-
Maven coordinates changed from
com.buschmais.jqassistant.plugin:jqassistant.plugin.java8
tocom.buschmais.jqassistant.plugin:java8
. -
No functional changes since version 1.1.3.
7.1.6. 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.
7.1.7. 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.
7.1.8. 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.
7.1.9. 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.
7.1.10. 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.
7.1.11. 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.
7.1.12. 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.
7.1.13. 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.
7.1.14. 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.
7.1.15. 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.
7.1.16. 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.
7.1.17. 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.
7.2. Changes to the Commandline Tool and Plugin for Maven
7.2.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.
7.2.2. Commandline Tool 1.2.0
-
Added support for rule parameters.
7.3. Changes to Common Modules
7.3.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.
7.3.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.
7.3.3. Neo4j Backend Version 1.2.0
-
Upgraded to Neo4j 2.3.8.
8. jQAssistant 1.1.3
8.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
8.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
8.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
8.4. Plugins
8.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)
8.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)
8.4.3. JPA2
-
Fixed concept "jpa2:NamedQuery" to also support @NamedQuery annotations which are directly applied to an entity (e.g. without surrounding @NamedQueries)
8.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"
8.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)
9. jQAssistant 1.1.2
9.1. Core
-
Upgraded to Neo4j 2.3.2
9.2. Integrated Server
-
do not create "neo4j-home" in working directory when starting the integrated server
9.3. Plugins
9.3.1. YAML
-
No
:YAML:Value
node created for non-existing value anymore.
9.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
9.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
9.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"
9.6. Plugins
9.6.1. Common
-
Use Apache commons compress for handling ZIP files for more robust handling of different encodings
9.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
9.6.3. JPA2
-
added support for scanning persistence.xml v2.1 documents
9.6.4. Maven
-
Fixed a problem that occurred where while scanning a reduced pom.xml file generated by the Maven shade plugin
10. jQAssistant 1.1.0
10.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
10.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
10.3. CLI
-
Added serverAddress and serverPort parameters to server task
-
Fixed a problem that .adoc files containing rules have not been evaluated
10.4. Plugins
10.4.1. Common
-
All ZIP archives (i.e. ZIP, JAR, WAR and EAR) are now labeled with "Zip"
10.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)
10.4.3. JUnit
-
Fixed an exception which has been logged during Maven build while parsing surefire and failsafe reports
10.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)
10.4.5. Tycho
-
Upgraded scanner plugin to to Tycho 0.23.1 to fix compatibility issues
10.4.6. URL
-
Added support for basic authentication for scanning URLs, e.g. http://user:secret@host/file
10.4.7. YAML
-
Added plugin which provides a scanner for YAML files
10.5. Documentation
-
Added an example to demonstrate using rules in AsciiDoc documents == jQAssistant 1.0.0
10.6. Core
10.6.1. Store
-
Upgraded to Neo4j 2.2.1
10.6.2. Analysis
-
added explicit verification strategies for executable rules
-
clarified behavor of concepts and constraints regarding to configured severities
10.7. Maven
-
Fixed problems of report goal in site lifecycle
-
Allow Maven plugin to be configured as build extension
10.8. Plugins
10.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
10.8.2. RDBMS
-
Database schemas may be scanned from the command line without creating a specific property file
10.8.3. Plugin API
-
ReportPlugin#setResult now takes a 'Result<? extends ExecutableRule>' as parameter (instead of 'Result<? extends Rule>')
10.8.4. XML
-
Prevent online schema lookups for DTDs while parsing documents
11. jQAssistant 1.0.0-RC1
11.1. Core
11.1.1. General
-
reduced amount of log messages printed on the console while running
11.1.2. Scanner
-
introduced pluggable scopes for identifying file and url types, e.g. 'maven:repository' or 'java:classpath'
11.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)
11.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
11.3. Command line
-
added command line support for scopes, e.g. scan -f java:classpath::/My/ClassPath/
11.4. Plugins
11.4.1. Facelet
-
added facelet plugin providing a scanner for JSF 2.x XHTML based views
11.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.
11.4.3. Java EE 6
-
added scanners for EAR archives and application.xml descriptors
-
added scanners for WAR archives and web.xml descriptors
11.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
11.4.5. Maven
-
added a plugin for scanning pom.xml files providing access to dependency management, plugins, profiles, etc.
11.4.6. Maven Repository
-
added Maven 2 Repository plugin (m2repo) containing a scanner for incremental scans of remote repositories
11.4.7. RDBMS
-
added RDBMS plugin containing a scanner to import schema metadata from relational databases
11.4.8. TestNG
-
added TestNG plugin containing concepts
11.4.9. XML
-
added XML plugin containing a generic scanner for XML files
11.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
11.6. General
-
license changed from ASL 2.0 to GPLv3 to solve compatibility issues with Neo4j community edition
11.7. Core
11.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
11.7.2. Analysis
-
constraints and concepts provide a severity
11.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
11.9. Command line
-
added downloadable distribution providing a standalone CLI including shell scripts for Windows and Unix compatible systems
11.10. Sonar
-
provide all plugins of jQAssistant distribution in sonar plugin
11.11. Plugins
11.11.1. Java
-
added scanner support for Java 8 bytecode
-
new concepts for throwable types are now provided
11.11.2. Java 8
-
added concepts for functional interfaces and default methods
11.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
11.11.4. CDI
-
new plugin containing a scanner for beans.xml descriptors, concepts and constrains
11.12. Documentation
-
explanation of rule types added (concepts, constraints, groups)
-
an example is provided for distributing plugins containing rules