dOOv - Provides fluent API for typesafe domain model validation and mapping. It uses annotations, code generation and a type safe DSL to make bean validation and mapping fast and easy.
JMapper - Uses byte code manipulation for lightning-fast mapping. Supports annotations and API or XML configuration.
MapStruct - Code generator that simplifies mappings between different bean types, based on a convention-over-configuration approach.
ModelMapper - Intelligent object mapping library that automatically maps objects to each other.
Orika - JavaBean-mapping framework that recursively copies (among other capabilities) data from one object to another.
reMap - Lambda and method handle-based mapping which requires code and not annotations if objects have different names.
Tools that handle the build cycle and dependencies of an application.
Apache Maven - Declarative build and dependency management that favors convention over configuration. It might be preferable to Apache Ant, which uses a rather procedural approach and can be difficult to maintain.
Bazel - Tool from Google that builds code quickly and reliably.
Buck - Encourages the creation of small, reusable modules consisting of code and resources.
Gradle - Incremental builds programmed via Groovy instead of declaring XML. Works well with Maven's dependency management.
Bytecode Manipulation
Libraries to manipulate bytecode programmatically.
ASM - All-purpose, low-level bytecode manipulation and analysis.
Byte Buddy - Further simplifies bytecode generation with a fluent API.
Jexer - Advanced console (and Swing) text user interface (TUI) library, with mouse-draggable windows, built-in terminal window manager, and sixel image support. Looks like Turbo Vision.
JLine - Includes features from modern shells like completion or history.
JOpt Simple - Fluent parser that uses the POSIX#getopt and GNU#getopt_long syntaxes.
picocli - ANSI colors and styles in usage help with annotation-based POSIX/GNU/any syntax, subcommands, strong typing for both options and positional args.
Text-IO - Aids the creation of full console-based applications.
Lanterna - Easy console text-GUI library, similar to curses. (LGPL-3.0-only)
Cluster Management
Frameworks that can dynamically manage applications inside of a cluster.
Apache Aurora - Mesos framework for long-running services and cron jobs.
Singularity - Mesos framework that makes deployment and operations easy. It supports web services, background workers, scheduled jobs, and one-off tasks.
Code Analysis
Tools that provide metrics and quality measurements.
Checkstyle - Static analysis of coding conventions and standards. (LGPL-2.1-or-later)
Error Prone - Catches common programming mistakes as compile-time errors.
Infer - Modern static analysis tool for verifying the correctness of code.
jQAssistant - Static code analysis with Neo4J-based query language. (GPL-3.0-only)
NullAway - Eliminates NullPointerExceptions with low build-time overhead.
PMD - Source code analysis for finding bad coding practices.
SonarJava - Static analyzer for SonarQube & SonarLint. (LGPL-3.0-only)
JHipster - Yeoman source code generator for Spring Boot and AngularJS.
Joda-Beans - Small framework that adds queryable properties to Java, enhancing JavaBeans.
JPA Buddy - Plugin for IntelliJ IDEA. Provides visual tools for generating JPA entities, Spring Data JPA repositories, Liquibase changelogs and SQL scripts. Offers automatic Liquibase/Flyway script generation by comparing model to DB, and reverse engineering JPA entities from DB tables.
Lombok - Code generator that aims to reduce verbosity.
Record-Builder - Companion builder class, withers and templates for Java records.
Telosys - Simple and light code generator available as an Eclipse Plugin and also as a CLI.
Compiler-compiler
Frameworks that help to create parsers, interpreters or compilers.
ANTLR - Complex full-featured framework for top-down parsing.
JavaCC - Parser generator that generates top-down parsers. Allows lexical state switching and permits extended BNF specifications.
Libraries which seek to gain high level information from images and videos.
BoofCV - Library for image processing, camera calibration, tracking, SFM, MVS, 3D vision, QR Code and much more.
ImageJ - Medical image processing application with an API.
JavaCV - Java interface to OpenCV, FFmpeg, and much more.
Configuration
Libraries that provide external configuration.
centraldogma - Highly-available version-controlled service configuration repository based on Git, ZooKeeper and HTTP/2.
cfg4j - Modern configuration library for distributed apps written in Java.
config - Configuration library supporting Java properties, JSON or its human optimized superset HOCON.
Configurate - Configuration library with support for various configuration formats and transformations.
dotenv - Twelve-factor configuration library which uses environment-specific files.
ini4j - Provides an API for handling Windows' INI files.
KAConf - Annotation-based configuration system for Java and Kotlin.
microconfig - Configuration system designed for microservices which helps to separate configuration from code. The configuration for different services can have common and specific parts and can be dynamically distributed.
Realm - Mobile database to run directly inside phones, tablets or wearables.
Redisson - Allows for distributed and scalable data structures on top of a Redis server.
requery - Modern, lightweight but powerful object mapping and SQL generator. Easily map to or create databases, or perform queries and updates from any Java-using platform.
Speedment - Database access library that utilizes Java 8's Stream API for querying.
Vibur DBCP - JDBC connection pool library with advanced performance monitoring capabilities.
Xodus - Highly concurrent transactional schema-less and ACID-compliant embedded database.
Date and Time
Libraries related to handling date and time.
Almanac Converter - Simple conversion between different calendar systems.
iCal4j - Parse and build iCalendar RFC 5545 data models.
Jollyday - Determines the holidays for a given year, country/name and eventually state/region.
ThreeTen-Extra - Additional date-time classes that complement those in JDK 8.
Time4J - Advanced date and time library. (LGPL-2.1-only)
DCEVM - JVM modification that allows unlimited redefinition of loaded classes at runtime. (GPL-2.0-only)
Faux Pas - Library that simplifies error handling by circumventing the issue that none of the functional interfaces in the Java Runtime is allowed by default to throw checked exceptions.
HotswapAgent - Unlimited runtime class and resource redefinition. (GPL-2.0-only)
JavaParser - Parse, modify and generate Java code.
ScaleCube Services - Embeddable Cluster-Membership library based on SWIM and gossip protocol.
Zuul - Gateway service that provides dynamic routing, monitoring, resiliency, security, and more.
Distributed Transactions
Distributed transactions provide a mechanism for ensuring consistency of data updates in the presence of concurrent access and partial failures.
Atomikos - Provides transactions for REST, SOA and microservices with support for JTA and XA.
Bitronix - Simple but complete implementation of the JTA 1.1 API.
Narayana - Provides support for traditional ACID and compensation transactions, also complies with JTA, JTS and other standards. (LGPL-2.1-only)
Seata - Delivers high performance and easy to use distributed transaction services under a microservices architecture.
Distribution
Tools that handle the distribution of applications in native formats.
Artipie - Binary artifact management toolkit which hosts them on the file system or S3.
Boxfuse - Deployment of JVM applications to AWS using the principles of immutable infrastructure.
Capsule - Simple and powerful packaging and deployment. A fat JAR on steroids, or a "Docker for Java" that supports JVM-optimized containers.
Central Repository - Largest binary component repository available as a free service to the open-source community. Default used by Apache Maven, and available in all other build tools.
Cloudsmith - Fully managed package management SaaS with support for Maven/Gradle/SBT with a free tier.
Getdown - A system for deploying Java applications to end-user computers and keeping them up to date. Developed as an alternative to Java Web Start.
IzPack - Setup authoring tool for cross-platform deployments.
JavaPackager - Maven and Gradle plugin which provides an easy way to package Java applications in native Windows, Mac OS X or GNU/Linux executables, and generate installers for them.
jlink.online - Builds optimized runtimes over HTTP.
Nexus - Binary management with proxy and caching capabilities.
packr - Packs JARs, assets and the JVM for native distribution on Windows, Linux and macOS.
Formal-methods tools: proof assistants, model checking, symbolic execution, etc.
CATG - Concolic unit testing engine. Automatically generates unit tests using formal methods.
Checker Framework - Pluggable type systems. Includes nullness types, physical units, immutability types and more. (GPL-2.0-only WITH Classpath-exception-2.0)
Daikon - Detects likely program invariants and generates JML specs based on those invariants.
Java Path Finder (JPF) - JVM formal verification tool containing a model checker and more. Created by NASA.
JMLOK 2.0 - Detects inconsistencies between code and JML specification through feedback-directed random tests generation, and suggests a likely cause for each nonconformance detected. (GPL-3.0-only)
KeY - Formal software development tool that aims to integrate design, implementation, formal specification, and formal verification of object-oriented software as seamlessly as possible. Uses JML for specification and symbolic execution for verification. (GPL-2.0-or-later)
OpenJML - Translates JML specifications into SMT-LIB format and passes the proof problems implied by the program to backend solvers. (GPL-2.0-only)
Functional Programming
Libraries that facilitate functional programming.
Cyclops - Monad and stream utilities, comprehensions, pattern matching, functional extensions for all JDK collections, future streams, trampolines and much more.
derive4j - Java 8 annotation processor and framework for deriving algebraic data types constructors, pattern-matching and morphisms. (GPL-3.0-only)