1.1.0

Core

  • make sure that ids used for concepts, constraints or groups are unique nevertheless if they have been defined in XML or Asciidoc documents

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

CLI

  • added serverAddress and serverPort parameters to server task

Plugins

GraphML

  • Added plugin which provides a GraphML export for the results of executed concepts, includes support for virtual elements (sub graphs, nodes, relationships)

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)

Tycho

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

YAML

  • Added plugin which provides a scanner for YAML files

JUnit

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

Core

Store

  • Upgraded to Neo4j 2.2.5

Report

  • 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 adopt this type

1.0.0

Core

Store

  • Upgraded to Neo4j 2.2.1

Analysis

  • added explicit verification strategies for executable rules

  • clarified behavor of concepts and constraints regarding to configured severities

Maven

  • Fixed problems of report goal in site lifecycle

  • Allow Maven plugin to be configured as build extension

Plugins

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

RDBMS

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

Plugin API

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

XML

  • Prevent online schema lookups for DTDs while parsing documents

1.0.0-RC1

Core

General

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

Scanner

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

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)

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

Command line

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

Plugins

Facelet

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

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.

Java EE 6

  • added scanners for EAR archives and application.xml descriptors

  • added scanners for WAR archives and web.xml descriptors

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

Maven

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

Maven Repository

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

RDBMS

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

TestNG

  • added TestNG plugin containing concepts

XML

  • added XML plugin containing a generic scanner for XML files

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'

1.0.0-M4

General

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

Core

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

Analysis

  • constraints and concepts provide a severity

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

Command line

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

Sonar

  • provide all plugins of jQAssistant distribution in sonar plugin

Plugins

Java

  • added scanner support for Java 8 bytecode

  • new concepts for throwable types are now provided

Java 8

  • added concepts for functional interfaces and default methods

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

CDI

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

Documentation

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

  • an example is provided for distributing plugins containing rules