Tuesday, November 22, 2011

MinuteProject Telosys impedance matching

This article is to review couple of technical points of both generators, and see the different possibilities of integration.
My perception of Telosys is for the moment limited to what I learned at Devoxx presentation and what I've tried, so if I miss things, be keen to notify.

Telosys
  • Code generator
  • Based on DB
  • Performs enrichment via GUI(Eclispe plugin) in a phase called repository
  • Generates for a target framework (JEE, Ajax) developped by Telosys Team
  • Generates artefacts for entities (table) 
  • Metadata of template (name, ...) are store in text file
  • Use Velocity as a template rendering engine
Telosys goodies
  • JPA2 artefacts handle one2one relationship (not yet covered by minuteproject)
  • Telosys Plugin makes enrichment easy
Telosys neural
  • Targeting a specific 'Telosys Framework' solution as pros and cons
    • Pros 
      • fully customized
      • all in one inside IDE
    • Cons 
      • dev. burden on a team
      • no market place recognition
      • reusability of templates might be poor
Minuteproject
  • Code generator
  • Based on DB and WSDL based (next release: 0.7)
  • Performs enrichment via Configuration file or via a console
  • Generates for a range of market-place technologies
    • Spring/hibernate/ibatis/JPA1/JPA2
    • Openxava
    • Play
    • Grails
    • Roo
    • REST
    • Primefaces
    • FitNesse
    • ...
  • Generate for artifacts at 6 levels
    • Entity (tables/views)
    • Field
    • Package
    • Model
    • StoredProc
    • Application
  • Generated code can be updated and modifications are kept over consecutive generation
  • Metadata of template (name, 20 other attributes) are store in xml file 
  • Possibility to define convention:
    • Ex: view do not have PK but it is possible to define some individually or globally by applying a convention called 'apply-default-primary-key-otherwise-first-one'.
  • Use Velocity as a template rendering engine
Integration investigation tracks
Here are couple of feasible tracks under investigation:
  • Integrate Minuteproject tracks into Telosys
  • Add Telosys target as a MinuteProject 4 Telosys track
  • Add Telosys Plugin over Minuteproject generator