TRIMM is, in our humble opinion, the closest you can come to a Swizz Army Knife of Code Generators for UML Class based models.
Visit TRIMM’s homepage
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) / Hibernate / EclipseLink
- Groovy / 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:
Visit TRIMM Core’s homepage
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 extensions
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.
Visit TRIMM Java’s homepage
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.x 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. See the list of TRIMM JPA extensions.
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.
Visit TRIMM Jpa’s homepage
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.)