Skip to content

Latest commit

 

History

History
60 lines (46 loc) · 3.15 KB

README.markdown

File metadata and controls

60 lines (46 loc) · 3.15 KB

Java Quality Assurance (JQA)

JQA is an open source tool for QA of Java applications. It is considered a supplement to tools like PMD (http://pmd.sourceforge.net/) or Checkstyle (http://checkstyle.sourceforge.net/) because it allows to write rules that exploit the bytecode engine capabilities for high-level architecture validations.

Features

JQA is integrated with:

JQA allows you to check your application classes regarding:

  • Naming: e.g., "all my DataAccessObject classes must be in the package com.mycompany.myapp.dao and must be named like *DAO"
  • Typing: e.g., "all my BusinessObject classes must extends to com.mycompany.myapp.bo.AbstractBO (directly or indirectly)"
  • Usages: e.g., "all my View classes (actions) can't use a DAO class"
  • Exception throwing: e.g., "all my Service classes must throw only exceptions that extends to com.mycompany.myapp.exception.ServiceException"
  • Allocations: e.g., "all my DataAccessObject classes must not be allocated/instantiated (via the new keyword)"
  • Abstraction: e.g., "all my types (files) in the com.mycompany.myapp.service package must be interfaces (contracts)"

Screenshots

Here are few screenshots of JQA in action.

Requirements

  • Java 5 or later
  • Maven 2

Documentation

Quick start

First, download and install JQA:

git clone http://github.com/jbaris/jqa
cd jqa/jqa-parent/
mvn clean install

Then, run one of the JQA plugins.

To run the JQA Maven plugin:

cd jqa-test-parent
mvn ar.com.fluxit.jqa:jqa-maven-plugin:check
xdg-open jqa-test-project/target/results-jqa-test-project.html     

To run the JQA Sonar plugin:

cd jqa-sonar-plugin
mvn org.codehaus.sonar:sonar-dev-maven-plugin::start-war -Dsonar.runtimeVersion=2.14 > target/sonar.log &
tail -f target/sonar.log | while read line; do echo $line | grep -q 'Database is up' && break; done
cd ../jqa-test-parent
mvn sonar:sonar -Dsonar.profile="JQA way"
xdg-open http://localhost:9000/drilldown/violations/ar.com.fluxit.jqa:jqa-test-parent

Guides

If you want to use JQA, see the User's guide.
If you want to contribute to JQA, see the Developer's guide.

Contribute

JQA is under development, and contributors are welcome. If you have a feature request, suggestion, or bug report, please open a new issue. To submit patches, please send a pull request. Once your changes get merged back in, you’ll automatically be added to the Contributors List.

License

This project is under GNU Lesser General Public License version 3 or later (http://www.gnu.org/licenses/).