The SmallMind project is about all the pieces of functionality you need to take care of after you’ve written your business logic. It’s about logging, pooling, monitoring, caching and remoting. It’s about doing all this without assumptions or privilege, so that every piece can be dropped, adapted, or extended. This project is opinionated, but we hope those opinions come out of a thoughtful and positive place.
This is a work in progress, which is to say it’s mostly code. We’re open to opinions, modifications, questions, and, above all, help, because if there’s any point to this project, it’s to be helpful.
All Smallmind modules are pushed to Maven Central under the org.smallmind group id. All artifacts which are intended to work together have the same sem version. Explicit module listings can be found in the various sections of this document covering those modules. Wherever possible, dependencies of this project are marked as
<optional>true</optional>. This does require projects using these libraries to include such dependencies along with the relevant Smallmind modules, but keeps this project from making unwanted decisions. If we’ve missed any such opportunities, please let us know.
There is none. IOC projects provide both the base container and configuration. Smallmind provides some occasionally helpful Spring beans, but there’s no magic in them. Whatever flavor of dependency injection you prefer should work just as well.
[claxon] - A unified monitoring framework with extensible meters and pluggable metric warehousing integrations (comes with Datadog, JMX, Logging and Prometheus).
[doppelganger] - An annotation-based data transfer object generating facility that can create multiple polymorphic-aware, fully-validated, JSON serializable views, from a single description.
[scribe] - A fast, light, easily extended, endpoint neutral, library safe, unified logging framework with decidedly lazy message interpolation.
[spark] - Maven packaging formats for the construction of self-contained executable build artifacts.