๐ Learning and exploring various configuration technologies.
The range of software configuration tools, languages and idioms are infinite. At times, configuration work feels like it is about 50% of software engineering! Given how large the space is and how much time we spend doing it, I want to chisel away at the mountain of configuration options and learn them in-depth.
This repository illustrates different concepts, patterns and examples via standalone sub-projects. Each sub-project is completely independent of the others and do not depend on the root project. This standalone sub-project constraint forces the sub-projects to be complete and maximizes the reader's chances of successfully running, understanding, and re-using the code.
The sub-projects include:
Examples using the pure-Java configuration library Typesafe Config.
See the README in typesafe-config/.
Example Java program that uses a YAML (YAML Ain't Markup Language) file for config.
See the README in yaml/.
Example Java program that uses a TOML (Tom's Obvious Minimal Language) file for config.
See the README in toml/.
General clean-ups, TODOs and things I wish to implement for this project:
- DONE Add a YAML sub-project
- Potentially add a CUE sub-project
- DONE Add a TOML sub-project
- Spring configuration example project:
dgroomes/spring-playground
- In the linked repo, there is a sub-project called "config/" which showcases some configuration features of Spring Framework and Spring Boot. Spring is a great example of software with a sophisticated configuration sub-system. It's one of, if not my favorite, features of Spring. It's not always easy, but it's extremely featureful.