Skip to content

Java architecture automatic validations and code review - A platform to define, validate, test and QA custom application architecture rules. Maven, Eclipse and Sonar integration.

License

fluxitsoft/jqa

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 or later

Documentation

Quick start

First, download and install JQA:

git clone http://github.com/fluxitsoft/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/).

githalytics.com alpha

About

Java architecture automatic validations and code review - A platform to define, validate, test and QA custom application architecture rules. Maven, Eclipse and Sonar integration.

Resources

License

Stars

Watchers

Forks

Packages

No packages published