Java Tools and Tips


Here is the latest in Java tools and libraries we have been haing through 2024 and into 2025. JaCoCo and Gatling have been staple as we continue to shift left with QA, we are yet to do Mutation testing in anger

Tools:

Architecture:

ArchUnit: A library for checking the architecture of Java codebases. Documentation: https://www.archunit.org/userguide/html/

Testing Tools:

Awaitility: A library for testing asynchronous Java code. Documentation: https://github.com/awaitility/awaitility/wiki

JaCoCo (Java Code Coverage): A code coverage library for Java. Documentation: https://www.jacoco.org/jacoco/trunk/doc/

PITest (Mutation Testing): A mutation testing system for Java. Documentation: https://pitest.org/

Testcontainers: Provides throwaway instances of databases, Selenium web browsers, or anything else that can run in a Docker container. Documentation: https://www.testcontainers.org/

Performance and Profiling:

Gatling: An open-source load and performance testing framework for web applications. Documentation: https://gatling.io/docs/

Java Mission Control (JMC): A profiling and diagnostics tools suite for Java. Documentation: https://docs.oracle.com/en/java/javase/14/jmc/

Security:

OWASP Dependency Check: A tool that identifies project dependencies and checks if there are any known, publicly disclosed, vulnerabilities. Documentation: https://jeremylong.github.io/DependencyCheck/

Passay: A password policy enforcement library for Java. Documentation: https://github.com/vt-middleware/passay

Build Tools:

Renovate: An open-source tool for automating dependency updates. Documentation: https://docs.renovatebot.com/

OpenRewrite: A refactoring tool for Java source code. Documentation: https://docs.openrewrite.org/

Maven Daemon (mvnd): A daemon for Apache Maven that keeps JVM hot and caches project data to improve build speed. Documentation: https://github.com/apache/maven-mvnd

Miscellaneous Tools:

JavaPoet: A Java API for generating .java source files. Documentation: https://github.com/square/javapoet

libphonenumber: Google’s library for parsing, formatting, and validating international phone numbers. Documentation: https://github.com/google/libphonenumber

Timefold (formerly OptaPlanner): A constraint solver to optimize planning and scheduling problems. Documentation: https://www.optaplanner.org/

Leave a Comment