TRIMM is, in our humble opinion, the closest you can come to a Swizz Army Knife of Code Generators for UML Class based models.
NEWS: TRIMM will be released as Opensource (Apache 2 license) during 4th quarter of 2012
TRIMM’s place in the software development process
TRIMM allows you to fit Model Driven Development (MDD) into exactly the development process you prefer, being it Agile/Iterative or a more heavy weight Waterfall process.
TRIMM allows you to generate code based on Structural models (mainly UML Class models) to a variety of different technologies:
- Java Persistence API (JPA)
- Grails GORM
- WebServices – WSDL documents and XML Schemas
TRIMM currently supports UML 2.x Class models made with these UML editors:
This is the foundation for all of the technology specific TRIMM modules.
The TRIMMCore module supports reading in UML 2.x Class models made with these UML editors:
The TRIMM Java module features a very versatile and easy to use Java Codegenerator, which can transform an imported UML 2.x Class model to high quality Java code.
The main differentiator between the TRIMM Java code generator and other (typically template based) Java code generators is the ease of use and the high extensibility, which allows you to create reusable Code generator plugins that you can use on other projects.
TRIMM Java already comes with a long list of existing reusable plugins (link to details about Plugins to come…)
TRIMM Java supports the Generator Gap Pattern (also known as Extension Classes or 3 level inheritance) for generating solid code while still allowing developers to write custom code that isn’t overwritten by the code generator.
The TRIMM Jpa module, that is an extension of the TRIMM Java module, allows you to generate Java domain models that uses the Java Persistence API (JPA) to persist your applications data into a relational database.
TRIMM Jpa supports standard JPA version 2.0 as well as several vendor specific features.
Currently list of supported vendors are:
Among the more advanced features supported by TRIMM Jpa is Bi-temporal Data models (active history) using Hibernates Envers.
List of plugins to come, in the meantime check out this tutorial for getting started using TRIMM JPA
Note: TRIMM Jpa (as well as TRIMM Java) supports the Generator Gap Pattern for generating solid code while still allowing developers to write custom code that isn’t overwritten by the code generator.
TRIMM Groovy also supports generating Grails GORM data models.
The generator is quite versatile and allows detailed control over generated contracts (such as naming convention, SOAP headers & faults, inlining of XML schemas, etc.)