# oblac/jodd

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/oblac-jodd).**

4,059 stars · 718 forks · Java · BSD-2-Clause

## Links

- GitHub: https://github.com/oblac/jodd
- Homepage: https://jodd.org
- awesome-repositories: https://awesome-repositories.com/repository/oblac-jodd.md

## Topics

`aop` `database` `html-parser` `http-client` `ioc` `java` `java8` `jodd` `jquery` `json-parser` `mail` `micro-framework` `utility-library`

## Description

Jodd is a suite of lightweight Java extensions and standard library utilities designed for application configuration, database mapping, dependency injection, and HTML parsing. It provides a consolidated set of core tools to facilitate Java development with a zero-dependency core to ensure compatibility and a small footprint across environments.

The project features a pragmatic dependency injection container for managing object lifecycles and a database mapper that uses SQL templates to map result sets directly to Java objects. It includes a specialized configuration manager supporting profiles, sections, and macros, as well as an HTML parser that extracts elements using CSS3 selectors.

Additional capabilities cover network communication via a lightweight HTTP client, JSON serialization, and email transmission and retrieval. The toolkit also provides utilities for data validation, type conversion, transaction management, and the generation of dynamic proxies for behavioral interception.

## Tags

### Development Tools & Productivity

- [Java Development Toolsets](https://awesome-repositories.com/f/development-tools-productivity/java-development-toolsets.md) — Offers a consolidated suite of core utility tools to facilitate Java development with a zero-dependency core.
- [Advanced Configuration Systems](https://awesome-repositories.com/f/development-tools-productivity/advanced-configuration-systems.md) — Supports complex configuration files featuring character encoding, sections, profiles, and macros. ([source](https://jodd.org/))
- [Custom Property Format Handlers](https://awesome-repositories.com/f/development-tools-productivity/custom-property-format-handlers.md) — Provides a specialized system for managing configuration properties using a custom format instead of standard properties files. ([source](https://cdn.jsdelivr.net/gh/oblac/jodd@master/README.md))

### Part of an Awesome List

- [SQL Template Mappers](https://awesome-repositories.com/f/awesome-lists/data/database-access/sql-template-mappers.md) — Reduces boilerplate by mapping database query results directly to Java objects using SQL templates.
- [HTML Parsing](https://awesome-repositories.com/f/awesome-lists/data/html-parsing.md) — Includes a parser that analyzes HTML content to build document models or extract elements. ([source](https://jodd.org/))
- [Common Frameworks](https://awesome-repositories.com/f/awesome-lists/devtools/common-frameworks.md) — Lightweight set of micro-frameworks and utility tools.

### Data & Databases

- [Java Object Mappings](https://awesome-repositories.com/f/data-databases/column-population/orm-mappings/java-object-mappings.md) — Executes database queries and maps the resulting data sets directly to Java objects. ([source](https://cdn.jsdelivr.net/gh/oblac/jodd@master/README.md))
- [HTML Selector Extractors](https://awesome-repositories.com/f/data-databases/data-processing-pipelines/data-processing-frameworks/structured-data-extractors/html-selector-extractors.md) — Provides an HTML parser that allows element extraction using CSS3 selector patterns.
- [SQL Template Mapping](https://awesome-repositories.com/f/data-databases/data-querying/sql-templating-engines/parameterized-sql-templates/sql-template-mapping.md) — Executes database queries and maps result sets directly to Java objects using SQL templates.
- [HTML Parsing and Extraction](https://awesome-repositories.com/f/data-databases/url-crawl-queues/url-filtering-strategies/content-and-language-filtering/html-parsing-and-extraction.md) — Provides an HTML parser that extracts elements and structured data using CSS3 selectors.
- [Data Validation](https://awesome-repositories.com/f/data-databases/data-validation.md) — Includes a system for checking inputs against defined rules to ensure data integrity. ([source](https://cdn.jsdelivr.net/gh/oblac/jodd@master/README.md))
- [JSON Serializers](https://awesome-repositories.com/f/data-databases/json-serializers.md) — Provides utilities for converting data structures into JSON strings and parsing JSON back into objects. ([source](https://cdn.jsdelivr.net/gh/oblac/jodd@master/README.md))
- [Transaction Management](https://awesome-repositories.com/f/data-databases/transaction-management.md) — Provides tools for controlling the boundaries and consistency of database transactions. ([source](https://cdn.jsdelivr.net/gh/oblac/jodd@master/README.md))

### DevOps & Infrastructure

- [Macro-Enabled Property Resolution](https://awesome-repositories.com/f/devops-infrastructure/configuration-management/configuration-resolution-engines/configuration-overrides/command-line/build-variable-overrides/hierarchical-property-resolution/macro-enabled-property-resolution.md) — Offers a specialized configuration manager supporting profiles, sections, and macros for property resolution.

### Programming Languages & Runtimes

- [XML and HTML Document Parsers](https://awesome-repositories.com/f/programming-languages-runtimes/string-parsing/xml-and-html-document-parsers.md) — Analyzes HTML content and extracts elements using a document object model and CSS3 selectors.
- [Data Type Conversions](https://awesome-repositories.com/f/programming-languages-runtimes/data-type-conversions.md) — Uses Java reflection and metadata analysis to map and transform data between different object types.
- [Validation Frameworks](https://awesome-repositories.com/f/programming-languages-runtimes/data-type-conversions/validation-frameworks.md) — Provides utilities for validating inputs against defined rules to ensure data integrity.
- [Java Utility Libraries](https://awesome-repositories.com/f/programming-languages-runtimes/java-utility-libraries.md) — Supplies a collection of lightweight Java utilities for common tasks like JSON parsing and data conversion.

### Software Engineering & Architecture

- [Application Configuration Managers](https://awesome-repositories.com/f/software-engineering-architecture/application-configuration-managers.md) — Provides a specialized configuration manager supporting profiles, sections, and macros.
- [Dependency Injection Containers](https://awesome-repositories.com/f/software-engineering-architecture/dependency-injection-containers.md) — Implements a pragmatic dependency injection container for managing object lifecycles and component wiring.
- [Container-Based Dependency Injection](https://awesome-repositories.com/f/software-engineering-architecture/object-management-systems/dependency-injection-containers/container-type-resolvers/container-based-dependency-injection.md) — Implements a pragmatic container for managing object lifecycles and component wiring to decouple application logic.
- [Zero-Dependency Libraries](https://awesome-repositories.com/f/software-engineering-architecture/zero-dependency-libraries.md) — Designed with a zero-dependency core to ensure a small footprint and maximum compatibility across Java environments.
- [Bean Property Inspection Tools](https://awesome-repositories.com/f/software-engineering-architecture/bean-property-inspection-tools.md) — Provides tools for inspecting bean properties and converting values between different data formats. ([source](https://cdn.jsdelivr.net/gh/oblac/jodd@master/README.md))
- [Method Interception Proxies](https://awesome-repositories.com/f/software-engineering-architecture/method-interception-proxies.md) — Generates runtime object proxies to inject cross-cutting behavioral logic into method executions.
- [Bytecode Proxy Generators](https://awesome-repositories.com/f/software-engineering-architecture/method-interception-proxies/bytecode-proxy-generators.md) — Generates bytecode-based object proxies to implement pointcuts and apply behavioral advice. ([source](https://cdn.jsdelivr.net/gh/oblac/jodd@master/README.md))

### Testing & Quality Assurance

- [Lightweight HTTP Clients](https://awesome-repositories.com/f/testing-quality-assurance/http-request-clients/lightweight-http-clients.md) — Provides a lightweight network client for sending requests to remote servers and processing responses. ([source](https://jodd.org))

### Web Development

- [HTTP Client Requests](https://awesome-repositories.com/f/web-development/http-client-requests.md) — Ships a lightweight HTTP client for sending requests to remote servers and processing responses.
