1. jQAssistant 1.5.0

1.1. Changes to the Plugins

1.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. Example

According to our old version schema the Maven artifact coordinates would have been:


With our new version schema for jQAssistant’s plugins the Maven artifact coordinates will be:


1.1.2. CDI Plugin 1.5.0

No Changes.

1.1.3. EJB 3 Plugin 1.5.0

No changes for this release.

1.1.4. GraphML Plugin 1.5.0

No Changes.

1.1.5. Java Plugin 1.5.0

No Changes.

1.1.6. Java 8 Plugin 1.5

No Changes.

1.1.7. JPA 2 Plugin 1.5.0

No Changes.

1.1.8. JUnit Plugin 1.5.0

No Changes.

1.1.9. JAX RS Plugin 1.5.0

No Changes.

1.1.10. Java EE 6 Plugin 1.5.0

No Changes.

1.1.11. JSON Plugin 1.5.0

No Changes.

1.1.12. M2 Repository Plugin 1.5.0

No Changes.

1.1.13. Maven 3 Plugin 1.5.0

  • The Maven project scanner adds a label Main to the main artifact (e.g. classes compiled from src/main/java) and Test to the test artifact ((e.g. classes compiled from src/test/java)

1.1.14. OSGi Plugin 1.5.0

No changes.

1.1.15. RDBMS Plugin 1.5.0

No Changes.

1.1.16. Spring Plugin 1.5.0

  • Ignore synthetic fields (e.g. generated by Groovy) for injection related constraints

1.1.17. TestNG Plugin 1.5.0

No Changes.

1.1.18. Tycho Plugin 1.5.0

No Changes.

1.1.19. XML Plugin 1.5.0

  • Added property lineNumber to :Xml:Document, :Xml:Element, :Xml:CData and :Xml:Text.

1.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

1.2. Changes to the Commandline Tool and Plugin for Maven

1.2.1. Plugin for Maven 1.5.0

  • Added a section embedded to the store configuration section allowing to configure the embedded Neo4j server (listen address, ports and APOC registration)

  • Deprecated system property jqassistant.server.address and replaced it by jqassistant.embedded.listen_address

  • Deprecated system property jqassistant.server.port and replaced it by jqassistant.embedded.httpPort

  • Added system properties jqassistant.embedded.boltPort and jqassistant.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

1.2.2. Commandline Tool 1.5.0

  • Removed deprecated option severity from analyze task (replaced by failOnSeverity and warnOnSeverity)

  • Deprecated option serverAddress, replaced by embeddedListenAddress

  • Deprecated option serverPort, replaced by embeddedHttpPort

  • Added options embeddedBoltPort and embeddedApocEnabled

1.3. Changes to Common Modules

1.3.1. Common Plugin 1.5.0

  • Removed additional label Container for directories, archives and artifacts as it was ambiguous.

1.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 to com.buschmais.jqassistant.core.analysis.api.Result to ease instance creation in script rules.

1.3.3. Neo4j Backend Version 1.5.0

  • Upgraded to Neo4j 3.4.8 and APOC

2. jQAssistant 1.4.0

  • Added a plugin providing rules for the Spring Framework.

2.1. Changes to the Plugins

2.1.1. CDI Plugin 1.4

No Changes.

2.1.2. EJB 3 Plugin 1.4

  • New concept ejb3:Schedule which labels all Java methods annotated with @javax.ejb.Schedule with the label Schedule.

  • New constraint ejb3:ScheduleMethodInEjbContext to ensure that scheduled methods are only allowed in EJBs

2.1.3. GraphML Plugin 1.4

No Changes.

2.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

2.1.5. Java 8 Plugin 1.4

  • Added concept java8:LambdaMethod for identifying lambda expressions

2.1.6. JPA 2 Plugin 1.4

No Changes.

2.1.7. JUnit Plugin 1.4 Support for Junit 5 added

This release adds JUnit 5 support to jQAssistant. See buschmais/jqa-junit-plugin#2. Renamed constraints
  • Renamed junit4:IgnoreWithoutMessage to junit:IgnoreWithoutMessage because of added support for JUnit 5.

  • Renamed junit:IgnoreWithoutMessage to junit:AssertionMustProvideMessage because of added support for JUnit 5.

  • Renamed junit4:TestMethodWithoutAssertion to junit:TestMethodWithoutAssertion because of added support for JUnit 5.

2.1.8. JAX RS Plugin 1.4

No Changes.

2.1.9. Java EE 6 Plugin 1.4

No Changes.

2.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 and json.file.exclude.

  • Fixed wrong compiler settings to generate Java 7 bytecode instead of Java 8

2.1.11. M2 Repository Plugin 1.4

No Changes.

2.1.12. Maven 3 Plugin 1.4

  • Fixed wrong compiler settings to generate Java 7 bytecode instead of Java 8

2.1.13. OSGi Plugin 1.4

  • Only internal changes.

2.1.14. RDBMS Plugin 1.4

No Changes.

2.1.15. Spring Plugin 1.4

  • Initial checkin

2.1.16. TestNG Plugin 1.4

No Changes.

2.1.17. Tycho Plugin 1.4

No Changes.

2.1.18. XML Plugin 1.4

  • Fixed an NPE issue while scanning XML documents using Bolt protocol

2.1.19. YAML Plugin 1.4

  • Update to SnakeYAML 1.19

2.2. Changes to the Commandline Tool and Plugin for Maven

2.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, and storeLifecycle also in lower case letters.

  • Users can now provide the severity for the configuration parameter failOnSeverity and warnOnSeverity 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 and failOnSeverity

2.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

2.3. Changes to Common Modules

2.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

2.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 to ReportPlugin#initialize

2.3.3. Neo4j Backend Version 1.4.0

3. jQAssistant 1.3.0

  • Added a plugin for scanning JSON documents.

3.1. Changes to the Plugins

3.1.1. CDI Plugin 1.3

  • Only internal changes.

3.1.2. EJB 3 Plugin 1.3

  • Only internal changes.

3.1.3. GraphML Plugin 1.3

  • Added support for nested sub graphs

  • Refactoring of internal graph representation to enable compatibility with newer Neo4j versions

3.1.4. Java Plugin 1.3

  • Added firstLineNumber, lastLineNumber and effectiveLineCount attributes to :Method nodes

  • Deprecated concept classpath:ResolveDependency and replaced it by classpath:ResolveDependsOn

  • classpath:ResolveDependsOn propagates weight attribute of DEPENDS_ON relations

3.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 with FunctionalInterface if it has exact on abstract method. Prior to that fix only Interfaces with the annotation @java.lang.FunctionalInterface where recognized as functional interface.

3.1.6. JPA 2 Plugin 1.3

  • Only internal changes.

3.1.7. JUnit Plugin 1.3

  • Only internal changes.

3.1.8. JAX RS Plugin 1.3

  • Only internal changes.

3.1.9. Java EE 6 Plugin 1.3

  • Only internal changes.

3.1.10. JSON Plugin 1.3

  • Initial release.

3.1.11. M2 Repository Plugin 1.3

  • Only internal changes.

3.1.12. Maven 3 Plugin 1.3

3.1.13. OSGi Plugin 1.3

  • Only internal changes.

3.1.14. RDBMS Plugin 1.3

  • Only internal changes.

3.1.15. TestNG Plugin 1.3

  • Only internal changes.

3.1.16. Tycho Plugin 1.3

  • Only internal changes.

3.1.17. XML Plugin 1.3

  • Only internal changes.

3.1.18. YAML Plugin 1.3

  • Only internal changes.

3.2. Changes to the Commandline Tool and Plugin for Maven

3.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 and failOnViolations and replaced them with warnOnSeverity and failOnSeverity

  • Fixed a problem where dependencies between types in different Maven modules have not been resolved

3.2.2. Commandline Tool 1.3.0

  • Maven coordinates changed from com.buschmais.jqassistant:commandline to com.buschmais.jqassistant:jqassistant-commandline. Therefore the name of the commandline distribution changed from commandline-1.3.0.zip to jqassistant-commandline-1.3.0.zip.

  • Renamed command line option severity to violationSeverity, 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 and defaultGroupSeverity

  • Added command line options storeUri, storeUsername and storePassword for initial support of remote Neo4j 3.x databases

3.3. Changes to Common Modules

3.3.1. Common Plugin 1.3

  • Only internal changes.

3.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 and max attributes to verification strategies for rule results

3.3.3. Neo4j Backend Version 1.3.0

  • Prepared support for Neo4j 3.x

4. jQAssistant 1.2.0

  • Improved the layout of the wording and the structure of the user manual of jQAssistant.

4.1. Changes to the Plugins

4.1.1. CDI Plugin 1.2

  • Maven coordinates changed from com.buschmais.jqassistant.plugin:jqassistant.plugin.cdi to com.buschmais.jqassistant.plugin:cdi.

  • No functional changes to version 1.1.3.

4.1.2. EJB 3 Plugin 1.2

  • Maven coordinates changed from com.buschmais.jqassistant.plugin:jqassistant.plugin.ejb3 to com.buschmais.jqassistant.plugin:ejb3.

  • No functional changes since version 1.1.3.

4.1.3. GraphML Plugin 1.2

  • Maven coordinates changed from com.buschmais.jqassistant.plugin:jqassistant.plugin.graphml to com.buschmais.jqassistant.plugin:graphml.

  • Fixed a bug where sub graphs have not been evaluated properly.

4.1.4. Java Plugin 1.2

  • Maven coordinates changed from com.buschmais.jqassistant.plugin:jqassistant.plugin.java to com.buschmais.jqassistant.plugin:java.

  • Added attribute weight to DEPENDS_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).

4.1.5. Java 8 Plugin 1.2

  • Maven coordinates changed from com.buschmais.jqassistant.plugin:jqassistant.plugin.java8 to com.buschmais.jqassistant.plugin:java8.

  • No functional changes since version 1.1.3.

4.1.6. JPA 2 Plugin 1.2

  • Maven coordinates changed from com.buschmais.jqassistant.plugin:jqassistant.plugin.jpa2 to com.buschmais.jqassistant.plugin:jpa2.

  • No functional changes to version 1.1.3.

4.1.7. JUnit Plugin 1.2

  • Maven coordinates changed from com.buschmais.jqassistant.plugin:jqassistant.plugin.junit to com.buschmais.jqassistant.plugin:junit.

  • No functional changes since version 1.1.3.

4.1.8. JAX RS Plugin 1.2

  • Maven coordinates changed from com.buschmais.jqassistant.plugin:jqassistant.plugin.jaxrs to com.buschmais.jqassistant.plugin:jaxrs.

  • No functional changes to version 1.1.3.

4.1.9. Java EE 6 Plugin 1.2

  • Maven coordinates changed from com.buschmais.jqassistant.plugin:jqassistant.plugin.javaee6 to com.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.

4.1.10. M2 Repository Plugin 1.2

  • Maven coordinates changed from com.buschmais.jqassistant.plugin:jqassistant.plugin.m2repo to com.buschmais.jqassistant.plugin:m2repo.

  • No functional changes since version 1.1.3.

4.1.11. Maven 3 Plugin 1.2

  • Maven coordinates changed from com.buschmais.jqassistant.plugin:jqassistant.plugin.maven3 to com.buschmais.jqassistant.plugin:maven3.

  • No functional changes since version 1.1.3.

4.1.12. OSGi Plugin 1.2

  • Maven coordinates changed from com.buschmais.jqassistant.plugin:jqassistant.plugin.osgi to com.buschmais.jqassistant.plugin:osgi.

  • No functional changes to version 1.1.3.

4.1.13. RDBMS Plugin 1.2

  • Maven coordinates changed from com.buschmais.jqassistant.plugin:jqassistant.plugin.rdbms to com.buschmais.jqassistant.plugin:rdbms.

  • No functional changes since version 1.1.3.

4.1.14. TestNG Plugin 1.2

  • Maven coordinates changed from com.buschmais.jqassistant.plugin:jqassistant.plugin.testng to com.buschmais.jqassistant.plugin:testng.

  • No functional changes since version 1.1.3.

4.1.15. Tycho Plugin 1.2

  • Maven coordinates changed from com.buschmais.jqassistant.plugin:jqassistant.plugin.tycho to com.buschmais.jqassistant.plugin:tycho.

  • No functional changes since version 1.1.3.

4.1.16. XML Plugin 1.2

  • Maven coordinates changed from com.buschmais.jqassistant.plugin:jqassistant.plugin.xml to com.buschmais.jqassistant.plugin:xml.

  • Added file pattern support (xml.file.include and xml.file.exclude) for specifying XML documents without a native scanner plugin.

4.1.17. YAML Plugin 1.2

  • Maven coordinates changed from com.buschmais.jqassistant.plugin:jqassistant.plugin.yaml to com.buschmais.jqassistant.plugin:yaml.

  • No functional changes since version 1.1.3.

4.2. Changes to the Commandline Tool and Plugin for Maven

4.2.1. Plugin for Maven 1.2.0

  • Maven coordinates changed from com.buschmais.jqassistant.scm:jqassistant-maven-plugin to com.buschmais.jqassistant:jqassistant-maven-plugin.

  • Added support for rule parameters.

4.2.2. Commandline Tool 1.2.0

  • Added support for rule parameters.

4.3. Changes to Common Modules

4.3.1. Common Plugin 1.2

  • Maven coordinates changed from com.buschmais.jqassistant.plugin:jqassistant.plugin.common to com.buschmais.jqassistant.plugin:common.

  • Added support for using file patterns (file.include and file.exclude) for scanner plugins.

4.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.

4.3.3. Neo4j Backend Version 1.2.0

  • Upgraded to Neo4j 2.3.8.

5. jQAssistant 1.1.3

5.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

5.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

5.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

5.4. Plugins

5.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)

5.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)

5.4.3. JPA2

  • Fixed concept "jpa2:NamedQuery" to also support @NamedQuery annotations which are directly applied to an entity (e.g. without surrounding @NamedQueries)

5.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"

5.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)

6. jQAssistant 1.1.2

6.1. Core

  • Upgraded to Neo4j 2.3.2

6.2. Integrated Server

  • do not create "neo4j-home" in working directory when starting the integrated server

6.3. Plugins

6.3.1. YAML

  • No :YAML:Value node created for non-existing value anymore.

6.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

6.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

6.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"

6.6. Plugins

6.6.1. Common

  • Use Apache commons compress for handling ZIP files for more robust handling of different encodings

6.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

6.6.3. JPA2

  • added support for scanning persistence.xml v2.1 documents

6.6.4. Maven

  • Fixed a problem that occurred where while scanning a reduced pom.xml file generated by the Maven shade plugin

7. jQAssistant 1.1.0

7.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

7.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

7.3. CLI

  • Added serverAddress and serverPort parameters to server task

  • Fixed a problem that .adoc files containing rules have not been evaluated

7.4. Plugins

7.4.1. Common

  • All ZIP archives (i.e. ZIP, JAR, WAR and EAR) are now labeled with "Zip"

7.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)

7.4.3. JUnit

  • Fixed an exception which has been logged during Maven build while parsing surefire and failsafe reports

7.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)

7.4.5. Tycho

  • Upgraded scanner plugin to to Tycho 0.23.1 to fix compatibility issues

7.4.6. URL

7.4.7. YAML

  • Added plugin which provides a scanner for YAML files

7.5. Documentation

  • Added an example to demonstrate using rules in AsciiDoc documents == jQAssistant 1.0.0

7.6. Core

7.6.1. Store

  • Upgraded to Neo4j 2.2.1

7.6.2. Analysis

  • added explicit verification strategies for executable rules

  • clarified behavor of concepts and constraints regarding to configured severities

7.7. Maven

  • Fixed problems of report goal in site lifecycle

  • Allow Maven plugin to be configured as build extension

7.8. Plugins

7.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

7.8.2. RDBMS

  • Database schemas may be scanned from the command line without creating a specific property file

7.8.3. Plugin API

  • ReportPlugin#setResult now takes a 'Result<? extends ExecutableRule>' as parameter (instead of 'Result<? extends Rule>')

7.8.4. XML

  • Prevent online schema lookups for DTDs while parsing documents

8. jQAssistant 1.0.0-RC1

8.1. Core

8.1.1. General

  • reduced amount of log messages printed on the console while running

8.1.2. Scanner

  • introduced pluggable scopes for identifying file and url types, e.g. 'maven:repository' or 'java:classpath'

8.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)

8.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

8.3. Command line

  • added command line support for scopes, e.g. scan -f java:classpath::/My/ClassPath/

8.4. Plugins

8.4.1. Facelet

  • added facelet plugin providing a scanner for JSF 2.x XHTML based views

8.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.

8.4.3. Java EE 6

  • added scanners for EAR archives and application.xml descriptors

  • added scanners for WAR archives and web.xml descriptors

8.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

8.4.5. Maven

  • added a plugin for scanning pom.xml files providing access to dependency management, plugins, profiles, etc.

8.4.6. Maven Repository

  • added Maven 2 Repository plugin (m2repo) containing a scanner for incremental scans of remote repositories

8.4.7. RDBMS

  • added RDBMS plugin containing a scanner to import schema metadata from relational databases

8.4.8. TestNG

  • added TestNG plugin containing concepts

8.4.9. XML

  • added XML plugin containing a generic scanner for XML files

8.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

8.6. General

  • license changed from ASL 2.0 to GPLv3 to solve compatibility issues with Neo4j community edition

8.7. Core

8.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

8.7.2. Analysis

  • constraints and concepts provide a severity

8.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

8.9. Command line

  • added downloadable distribution providing a standalone CLI including shell scripts for Windows and Unix compatible systems

8.10. Sonar

  • provide all plugins of jQAssistant distribution in sonar plugin

8.11. Plugins

8.11.1. Java

  • added scanner support for Java 8 bytecode

  • new concepts for throwable types are now provided

8.11.2. Java 8

  • added concepts for functional interfaces and default methods

8.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

8.11.4. CDI

  • new plugin containing a scanner for beans.xml descriptors, concepts and constrains

8.12. Documentation

  • explanation of rule types added (concepts, constraints, groups)

  • an example is provided for distributing plugins containing rules