Welcome to the wonderful world of the Mature Modular Meta-Framework (mmm). 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 spring and Java Persistence Api (JPA) using hibernate. 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.

Mission Statement

  • 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 including 1.0.0-SNAPSHOT) may be completely refactored, change their API or even disappear completely.

Cross-Cutting Concerns

We care a lot for cross-cutting concerns such as security and accessibility that are sometimes neglected by other OSS projects.

Project State

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.