1. jQAssistant 1.3.0
-
Added a plugin for scanning JSON documents.
1.1. Changes to the Plugins
1.1.1. CDI Plugin 1.3
-
Only internal changes.
1.1.2. EJB 3 Plugin 1.3
-
Only internal changes.
1.1.3. GraphML Plugin 1.3
-
Added support for nested sub graphs
-
Refactoring of internal graph representation to enable compatibility with newer Neo4j versions
1.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
1.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.
1.1.6. JPA 2 Plugin 1.3
-
Only internal changes.
1.1.7. JUnit Plugin 1.3
-
Only internal changes.
1.1.8. JAX RS Plugin 1.3
-
Only internal changes.
1.1.9. Java EE 6 Plugin 1.3
-
Only internal changes.
1.1.10. JSON Plugin 1.3
-
Initial release.
1.1.11. M2 Repository Plugin 1.3
-
Only internal changes.
1.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.
1.1.13. OSGi Plugin 1.3
-
Only internal changes.
1.1.14. RDBMS Plugin 1.3
-
Only internal changes.
1.1.15. TestNG Plugin 1.3
-
Only internal changes.
1.1.16. Tycho Plugin 1.3
-
Only internal changes.
1.1.17. XML Plugin 1.3
-
Only internal changes.
1.1.18. YAML Plugin 1.3
-
Only internal changes.
1.2. Changes to the Commandline Tool and Plugin for Maven
1.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
1.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
1.3. Changes to Common Modules
1.3.1. Common Plugin 1.3.0
-
Only internal changes.
1.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
1.3.3. jQAssistant Neo4j Backend Version 1.3.0
-
Prepared support for Neo4j 3.x
2. jQAssistant 1.2.0
-
Improved the layout of the wording and the structure of the user manual of jQAssistant.
2.1. Changes to the Plugins
2.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.
2.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.
2.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.
2.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)
.
2.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.
2.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.
2.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.
2.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.
2.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.
2.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.
2.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.
2.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.
2.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.
2.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.
2.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.
2.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.
2.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.
2.2. Changes to the Commandline Tool and Plugin for Maven
2.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.
2.2.2. Commandline Tool 1.2.0
-
Added support for rule parameters.
2.3. Changes to Common Modules
2.3.1. Common Plugin 1.2.0
-
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.
2.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.
2.3.3. jQAssistant Neo4j Backend Version 1.2.0
-
Upgraded to Neo4j 2.3.8.
3. jQAssistant 1.1.3
3.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
3.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
3.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
3.4. Plugins
3.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)
3.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)
3.4.3. JPA2
-
Fixed concept "jpa2:NamedQuery" to also support @NamedQuery annotations which are directly applied to an entity (e.g. without surrounding @NamedQueries)
3.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"
3.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)
4. jQAssistant 1.1.2
4.1. Core
-
Upgraded to Neo4j 2.3.2
4.2. Integrated Server
-
do not create "neo4j-home" in working directory when starting the integrated server
4.3. Plugins
4.3.1. YAML
-
No
:YAML:Value
node created for non-existing value anymore.
4.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
4.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
4.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"
4.6. Plugins
4.6.1. Common
-
Use Apache commons compress for handling ZIP files for more robust handling of different encodings
4.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
4.6.3. JPA2
-
added support for scanning persistence.xml v2.1 documents
4.6.4. Maven
-
Fixed a problem that occurred where while scanning a reduced pom.xml file generated by the Maven shade plugin
5. jQAssistant 1.1.0
5.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
5.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
5.3. CLI
-
Added serverAddress and serverPort parameters to server task
-
Fixed a problem that .adoc files containing rules have not been evaluated
5.4. Plugins
5.4.1. Common
-
All ZIP archives (i.e. ZIP, JAR, WAR and EAR) are now labeled with "Zip"
5.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)
5.4.3. JUnit
-
Fixed an exception which has been logged during Maven build while parsing surefire and failsafe reports
5.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)
5.4.5. Tycho
-
Upgraded scanner plugin to to Tycho 0.23.1 to fix compatibility issues
5.4.6. URL
-
Added support for basic authentication for scanning URLs, e.g. http://user:secret@host/file
5.4.7. YAML
-
Added plugin which provides a scanner for YAML files
5.5. Documentation
-
Added an example to demonstrate using rules in AsciiDoc documents == jQAssistant 1.0.0
5.6. Core
5.6.1. Store
-
Upgraded to Neo4j 2.2.1
5.6.2. Analysis
-
added explicit verification strategies for executable rules
-
clarified behavor of concepts and constraints regarding to configured severities
5.7. Maven
-
Fixed problems of report goal in site lifecycle
-
Allow Maven plugin to be configured as build extension
5.8. Plugins
5.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
5.8.2. RDBMS
-
Database schemas may be scanned from the command line without creating a specific property file
5.8.3. Plugin API
-
ReportPlugin#setResult now takes a 'Result<? extends ExecutableRule>' as parameter (instead of 'Result<? extends Rule>')
5.8.4. XML
-
Prevent online schema lookups for DTDs while parsing documents
6. jQAssistant 1.0.0-RC1
6.1. Core
6.1.1. General
-
reduced amount of log messages printed on the console while running
6.1.2. Scanner
-
introduced pluggable scopes for identifying file and url types, e.g. 'maven:repository' or 'java:classpath'
6.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)
6.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
6.3. Command line
-
added command line support for scopes, e.g. scan -f java:classpath::/My/ClassPath/
6.4. Plugins
6.4.1. Facelet
-
added facelet plugin providing a scanner for JSF 2.x XHTML based views
6.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.
6.4.3. Java EE 6
-
added scanners for EAR archives and application.xml descriptors
-
added scanners for WAR archives and web.xml descriptors
6.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
6.4.5. Maven
-
added a plugin for scanning pom.xml files providing access to dependency management, plugins, profiles, etc.
6.4.6. Maven Repository
-
added Maven 2 Repository plugin (m2repo) containing a scanner for incremental scans of remote repositories
6.4.7. RDBMS
-
added RDBMS plugin containing a scanner to import schema metadata from relational databases
6.4.8. TestNG
-
added TestNG plugin containing concepts
6.4.9. XML
-
added XML plugin containing a generic scanner for XML files
6.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
6.6. General
-
license changed from ASL 2.0 to GPLv3 to solve compatibility issues with Neo4j community edition
6.7. Core
6.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
6.7.2. Analysis
-
constraints and concepts provide a severity
6.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
6.9. Command line
-
added downloadable distribution providing a standalone CLI including shell scripts for Windows and Unix compatible systems
6.10. Sonar
-
provide all plugins of jQAssistant distribution in sonar plugin
6.11. Plugins
6.11.1. Java
-
added scanner support for Java 8 bytecode
-
new concepts for throwable types are now provided
6.11.2. Java 8
-
added concepts for functional interfaces and default methods
6.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
6.11.4. CDI
-
new plugin containing a scanner for beans.xml descriptors, concepts and constrains
6.12. Documentation
-
explanation of rule types added (concepts, constraints, groups)
-
an example is provided for distributing plugins containing rules