jQAssistant is a QA tool, which allows the definition and validation of project specific rules on a structural level. It is built upon the graph database Neo4j and can easily be plugged into the build process to automate detection of constraint violations and generate reports about user defined concepts and metrics.

Example use cases:

  • Enforce naming conventions, e.g. EJBs, JPA entities, test classes, packages, Maven modules etc.
  • Validate dependencies between modules of your project
  • Separate API and implementation packages
  • Detect common problems like cyclic dependencies or tests without assertions

Rules are expressed in Cypher - the easy-to-learn query language of Neo4j:

MATCH
  (t:Test:Method)
WHERE NOT
  (t)-[:INVOKES]->(:Assert:Method)
RETURN
  t AS TestWithoutAssertion
Get started here!

News

  • Workshop in Frankfurt/Main: „Let’s Disassemble A Monolith!“

    The workshop „Let’s Disassemble A Monolith“ is coming to Frankfurt/Main in December 10th/11h this year! Attendees will learn how to deal with the challenge of extracting Microservices from monolothic Java systems. This is performed in a hands-on way using the example of a real-world open source Java eCommerce system. One of the key aspects is…

  • jQAssistant Plugin for SonarQube 7.9 released

    A new release of the jQAssistant plugin for SonarQube is available now! It comes with the following changes: Raised compatibility to SonarQube 7.9 (current LTS release) Support for multi-module projecs The plugin and installation instructions are available on the project homepage, for release note read here. Enjoy!

  • Fix Your Microservice Architecture Using Graph Analysis

    Nicolas Mervaillie (GraphAware) gave a talk about analysis of microservices architectures at the Neo4j Online Developer Summit NODES 2019. He covers topics like impact analysis between microservices, detecting potential resilience problems or finding missing API documentation – all this based on information provided by jQAssistant. Got curious? Enjoy watching the recording of his talk here:

  • Java DDD plugin released

    Today we’re proud to announce a new plug-in for the jQAssistant ecosystem: The jQA Java DDD plug-in! With this new jQAssistant plug-in it’s easily possible to map the well-known concepts of Domain-Driven Design to your codebase, make the information available in the graph for querying and defining architectural constraints on them. To accomplish this, the…

  • jQAssistant 1.7.0 released

    jQAssistant 1.7.0 has been released and comes with the @jQASuppress annotation, the ability to scan Maven repositories and a Dashboard plugin.

  • Workshop: „Let’s Disassemble A Monolith!“

    In discussions with jQAssistant users we’re repeatingly asked about the following scenario: analysis and refactoring of monolithic Java systems. These have usually aged over many years and are packed with business critical functionality, implemented by many developers that joined and left the project taking their knowledge away. Since quite some time there’s now also a…

  • jQAssistant 1.6.0 released

    We released jQAssistant 1.6.0 and it comes with the following improvements: Dependency Graph for Maven Projects The full dependency graph of a Maven project is now scanned if jQAssistant is used as Maven plugin and can be visualized in the browser using the following query: MATCH (p:Maven:Project)-[:CREATES]->(a:Artifact)-[:DEPENDS_ON*]->(d:Artifact) RETURN * Here’s the result for the Spring…

  • jQAssistant 1.5.0 released

    jQAssistant 1.5.0 has been released supporting wildcards for rule references, labels for :Main and :Test artifacts and improved Spring rules.

  • View All »

Back to Top