
GeDA was inspired by developer's lazyness (as always). The rationale for its existance was overhead of creating DTO Assemblers in an n-tier application to pass information within domain object to UI through DTO's (Data Transfer Objects). The basic principle of the above application design is to extract the necessary information from the domain objects in the form of DTO's. In reality this involves a tidious get/set method calls that look very much the same for most of the objects. GeDA uses Java5's annotations in order to map DTO's onto paths of the Domain object properties (the reflection method). Thus the annotated DTO's can be examined by a Generic DTO Assembler that will create specific instance of the assembler for the DTO is respect to a Domain object. The assmebler is basically a placeholder for so called "data pipes" that allow transferring data from/to domain object's field. But do not take my word for it - try it out yourself.
Why use it?
- Provides flexible mappings for DTO objects
- Allows to flatten Entity objects whilst converting them to DTO
- Allows to transform values or populate derived properties of your DTO
- Saves a lot of coding (and testing) of DTO specific assemblers
- Performance! GeDA uses Javassist by default to auto generate code for assemblers (also can use BCEL, SUN javac or pure java Reflection API)
- Spring 3 OOTB integration
Common misconception: GeDA was not build to hydrate ORM classes (such as Hibernate). If you just want to get DTO with simple field values straight out of your DB you are better of with the Object Query Language (OQL) (such as HQL in Hibernate). However, if you are working in application service layer with complex view (as in MVC) then GeDA is just what the doctor ordered!
Where can I get this awesomeness for free?
web: https://sourceforge.net/projects/geda-genericdto/
download latest stable: http://sourceforge.net/projects/geda-genericdto/files/stable/
svn: svn co https://geda-genericdto.svn.sourceforge.net/svnroot/geda-genericdto geda-genericdto
mvn: geda on maven central http://search.maven.org/
Feedback and notes
NEWS: GeDA 2.0.0 has been released (with Spring 3 integration).
To setup mvn dependency please read this page.
NOTE: If you have some questions please consult FAQ's section prior sending a request
VERSIONS: GeDA had undergone namespace change (dp.lib to com.inspiresoftware.lib.dto.geda) in version 2.0.0 to make it available through maven central.
If you wish to contact us, propose new features or contribute please use our feedback form
Recent enhancements may be found here
You can report any problems with GeDA to our public jira
