Show HN: Externalized Properties, a modern Java configuration library

Java devs squabble over a new set-it-anywhere settings tool

TLDR: A new Java tool promises simple, flexible app settings pulled from files, databases, or Git, inspired by Twelve‑Factor principles. Commenters split between “do we need another one?” and “will it play nice with PKL and existing tools,” turning a small launch into a classic config cage match.

A fresh “Show HN” just dropped and the config wars immediately lit up. The pitch: a lightweight Java helper that lets apps keep their settings outside the code and load them from places like files, databases, or even Git—straight out of the Twelve‑Factor playbook’s Config. The creator touts easy setup, flexible “resolvers,” and even auto‑filling variables so you don’t hardcode secrets.

Then came the classic Hacker News pivot from demo to debate. One early voice demanded the eternal comparison chart—how does this stack up against the big frameworks everyone already uses? Another dev swooped in with a practical twist: they write configs in PKL (a human‑friendly configuration language) and just want to fetch those settings from anywhere. Can this thing be the plumbing while PKL stays the paint? The thread vibed with a familiar split: Team Lightweight loves the “just properties, no ceremony” approach; Team Framework wants guardrails, integrations, and reasons to switch.

There was light roasting of the cheery “please star the repo” line—cue the “like and subscribe” jokes—while fans praised the simplicity and the promise of mapping plain interface methods to real settings without hauling in a mega‑framework. The mood? Curious but cautious. Folks want real‑world comparisons, proof it plays nice with existing formats, and reassurance it won’t become Yet Another Config Rabbit Hole. For now, the community’s popcorn is out and the benchmarks are called for.

Key Points

  • Externalized Properties is a Java library for resolving configuration from multiple external sources.
  • It is inspired by the Twelve-Factor Methodology’s Config principle and emphasizes best practices.
  • Installation is available via Gradle and Maven with core and optional database/git resolvers.
  • Jars include Automatic-Module-Name for Java 9 modules, with defined module names for core, database, and git.
  • Features include dynamic-proxy property mapping, conversion, variable expansion, processing, profiles, caching, eager loading, and custom resolvers/converters.

Hottest takes

"How this compares with other libs and frameworks ?" — kosolam
"Could I use Externalized Properties ... have it be PKL?" — elric
"Externalized Properties was inspired by the The Twelve Factor Methodology" — jeyjeyemem
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.