Mandragora (http://mandragora.sourceforge.net/) is an opensource framework that provides a pre-built infrastructure for every kind of java application.
Mandragora is a generic business layer highly configurable and easily extensible, suitable for distributed applications as well, that come with more than 100 generic business methods , and that allows you to reuse the methods you write, keeping the infrastructure that implements the J2ee patterns. It has been fully tested for JBOSS and TOMCAT, and it can be considered a component of the middleware. If you use a MVC pattern in the application that you have to design and implement, Mandragora provides you the infrastructure for the Model. Typically, with MVC, the controller has to update or query the model, and the view can query the model as well. The model should be decoupled from controller or view by a business delegate layer. So all access to the model should pass trough the BD. Mandragora provides more than one hundred of business methods, that your controller for example, has just to call, without worrying about their implementation (IoC). So How such methods call service facade, application services ,and DAO methods, is not about your care. Just do bd.findByPrimarykey(....) or bd. storePathsCascade(...) and much more, to execute very complex operations and queries such storing or modifying very complex objects in the DB. Then you can extend the service facade, application services and Dao implementation very easily, to better fit your requirements, as Mandragora porvides a very easy to use IoC mechanism, to allow you to choose which implementation of BD, ApplicationService, Service FAcade or DAO interface to use, even at runtime. You should spend some minutes downloading and trying it, to see, how much time you can save, having yet ready to use the most common operations (many crud methods and much more complex business methods), so in your work you have just to focus on the particular Business Intelligence of your concrete project, as all such bothering operations that you have to repeat project after project, are already done, once for ever, and if you improve them, such work is done for all your projects. Moreover all of that is implemented using a well done infrastructure using the J2ee patterns, so extending Mandragora (http://mandragora.sourceforge.net/) for the business method that you have to implement because you don't find in the provided ones, you are guaranteed to implement a well done architecture. If you wish to write new BD methods, you can do in terms of the already existing Servcice Facade methods, or mixing with new SF methods written by your own, that in turn ca be implemented in terms of existing Application Service or DAO methods, or in terms of new ones that you write. All this is very easy to use. Download and spend 30 minutes. You will save week of work. Best regards Alessandro Colantoni http://mandragora.sourceforge.net/