EMFT Texo: generating true pojos, the ORM and more...
This talk introduces the main concepts of the EMFT Texo project. The Texo project delivers code/artifact generation from ecore/xsd models for (web) server environments with additional runtime functionality. Texo aims to eventually also provide code generation solutions for the web client.
The Texo project is based on the concept of annotated models. Texo works out-of-the-box with any ecore/xsd model, but you can control code/artifact generation by adding annotations to the model. Texo provides an annotation editor for this purpose.
Some key features of Texo:
- Code Generation:
- Generates true pojo’s from an Ecore model or XSD without compile-time/runtime dependency on EMF, Texo or other framework types. Facilitates integration of EMF concepts with other frameworks such as Google Web Toolkit or Object Relational Mapping solutions.
- Supports manual change of generated code (the same approach as EMF)
- Overridable and Extendable code generation with support for EMF-like merge, formatting, import-organizing
- ORM/JPA generation, Texo supports the generation of the orm.xml mapping from ecore/xsd models, the domain model can be enriched with JPA annotations to control the ORM generation, the full ORM 2.0 spec is supported.
- Support for java annotations and annotations defined in the model, to drive code generation and to be translated into java source code annotation
- Supports XML Schema constructs (as EMF)
- XML and XMI Serialization
- JSON Serialization
- Runtime model support, key to implementing generic functionality as security, archiving, query generation and generic web services.
The talk will be a combination of slides and demo and cover the following topics:
- Artifact Generation (code, ORM)
- Annotated Models
- Runtime model support
- XMI/XML and JSON Serialization
- Texo and EMF
- Texo and GWT
Martin Taal is the founder and lead of the EMF Teneo and EMFT Texo projects and committer on the CDO project.
Martin is an independent software consultant mainly working on data-centric business web applications. The past 15 years he has worked in different roles varying from functional architect to development manager, team lead and software developer.
His interests vary from technical architecture of web applications to functional ERP areas such as production planning, inventory management, parts planning and rental and leasing.
The last 9 years Martin has primarily worked on business web applications on topics such as e-procurement, product data management, content management and supplier management.
Currently he is working on projects related to open source ERP and content management systems with a focus on designing and developing new web application user interface architectures using model driven development techniques.