Welcome to the wonderful world of the Mature Modular Meta-Framework
This project provides modules to speed up the development of (complex) applications.
It is based on common standards such as Context and Dependency Injection
(CDI) by default using
and Java Persistence Api
. Most of such frameworks aim to be minimal invasive what
is nice in general. However, development of large applications with only such frameworks is still not
efficient as you always have to implement a lot of general code in every project reinventing the wheel.
Further there are hundreds of possible ways to do something and you can easily get on the wrong track.
This project helps you to make the right decisions leading to a mature, flexible and powerful architecture
that has proven success in various open-source and commercial medium to large scale projects.
By providing a lot of reusable and generic code for all the common problems on your way this projects
aims to speed you up so you can concentrate on the actual features of your application.
To get started have a look at the technical architecture
For the vision of this project please also read our strategic posting
Rescue the (Java) world
Ready to use
This project provides the following generic components that can already be used now:
- mmm-persistence provides code and best practices to build your persistence layer with JPA easier.
- mmm-util contains powerful utilities.
- mmm-transaction provides transactions for those who dislike AOP and might like lambdas.
- Designed with beauty.
- Coded with passion.
- Tested with care.
- Documented with devotion.
MMM is entirely written in Java. It makes extensive use of the Java 5 syntax and is already prepared for Java 8.
All code is written with focus on design & quality and comes with detailed API documentation.
The application is heavily based on the idioms separation of concerns (SoC) and inversion of control (IoC)
and therefore split into tiny components (see modules
). This open architecture allows any
component implementation to be reused (by other projects) or be replaced (for custom needs).
We are a truly open, community based project and not driven by commercial vendor(s).
This mission statement applies to sub-projects (modules) that are released. Modules that are NOT
released (version less than 1.0.0
) may be
completely refactored, change their API or even disappear completely.
We care a lot for cross-cutting concerns such as
are sometimes neglected by other OSS projects.
We are making great progress with our next generation UI framework (see mmm-client-ui
and are on our way to create a large showcase to demonstrate the features and concepts.
If you are looking for open, flexible and well-designed software components (see "Ready to use")
or you want to get involved (see Get Involved
and let the vision of MMM become reality then you are at the right place.