# Release Notes

## 1.0.0-RC

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