Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Génération de code       à partir d’un « modèle léger »                                     Laurent Guérin                ...
Introduction                                                         Sogeti : Company                              Capgemi...
Contexte & Objectifs
Contexte • Constat :     – Généralisation de Java :-)     – Projet Java = projet lourd :-( • Génération de code ?   Oui, m...
Le projet Telosys                                                          Method                                 Tools   ...
Philosophie du projet           “Keep it simple and stupid”                                                               ...
Outillage • Ne pas réinventer la roue (il existe déjà de   nombreux outils), apporter une alternative • Offrir une boite à...
Le framework
Le framework • Framework global                                                  “all in one“ • Un seul jar    (+ JDBC) =>...
« Global effect »                                             Un seul framework                                qui couvre ...
Le paradigme « client-serveur »  • Une fois chargé dans le navigateur, un écran    dialogue avec le server via des requête...
La persistance • Une alternative aux “ORM” classiques                  ORM : JPA (or Hibernate) …                  High le...
Un framework ne suffit pas…                                                                                               ...
Génération de codeLes différentes approches
Approche « Model First » • Démarche MDD classique, MDA, etc … • « Model - First » => concevoir un model !      – investiss...
Approche « scaffolding » • Scaffolding de type « Database - First » • Très efficace ( rapide )                            ...
Les « wizards » • Bien intégré dans l’IDE :-)                                                                             ...
L’approche « Telosys Tools »
Expression du besoin • Les souhaits :      – générer rapidement le code initial des écrans de                             ...
Telosys Tools : le processus  • Un processus en 3 étapes                                                                  ...
Telosys Tools • Modèle ( « léger » )      –    seules les entités sont gérées      –    représentation graphique inutile  ...
Editeur de modèle                           workspace                                                      Fichier        ...
Velocity ( templating engine )    Extrait d’un template (génération d’un bean)     public class $class.name implements Ser...
Qu’est-ce qu’on génère ?
Les artefacts générés N fois •    VO Bean (POJO = “entity record”) •    VO List (liste de bean avec tri & sélection)      ...
Persistance : objet ou record ? • Approche “graphe d’objets” : les liens peuvent   être générés (persistance de type JPA) ...
Les artefacts générés 1 fois code « initial »  à reprendre                                                               ...
Screen body (exemple)  JSP ou JSPX, pas de HTML !  <%@ taglib uri="/telosys/widgets" prefix="t" %>  <t:screenbody>    <t:l...
Conventions  • "Framework" => "Frame" !  • "CoC" ( Conventions over Configuration )       – Les développeurs savent où pla...
Qu’est-ce qu’un projet Telosys ? • Une application Java Web standard                                             src (serv...
Démo avec Eclipse • Création d’un nouveau projet Telosys … 1) Création d’un projet « Dynamic Web Project »                ...
Démo avec Eclipse (suite)   3) Tester le      projet (run)         4) Définir les            conventions                  ...
Utilisation des Telosys Tools
Vue d’ensemble Utilisable en ligne                                                                                   Tout ...
Généralisation : nouvelles cibles • Si ça fonctionne pour le framework Telosys …   ça peut aussi être utilisé pour …    d...
La démo …  • Connexion à la base de données  • Génération du « repository »  • Modification/adaptation du « repository »  ...
Conclusion
Conclusion   Base de                                Modèle                                          Outils       Code init...
Le future   • Roadmap 2012 / principales évolutions        – Repository             • Extension (sans limite) des informat...
Questions ?
Appendix
Framework features   Screen Maps                                                                                          ...
Telosys Screen Builder     A visual tool to design the Telosys Screens     ( beta version )                               ...
Follow the project …• Web site : http://www.telosys.org•         LinkedIN    http://www.linkedin.com/groups?gid=1340197•  ...
The demo…
Demo • Use the database meta-data to generate the   initial repository             Database                             Ge...
Demo (cont’d) • The generated repository is editable   with an Eclipse plugin editor                                      ...
Demo (cont’d) • Java fields :     – Each Java field can have additional information     – Useful for           • JSP/TagLi...
Demo (cont’d) • Bulk generation                                                                                     www.te...
Demo (cont’d) • Generator templates     – The generator is based on "Velocity"     – The templates ( ".vm" files ) can be ...
Demo (cont’d)  • Entities links       – The foreign keys can be used to generate        links between entities       –Usef...
Demo (cont’d)  • Generator project’s variables       – Each project can        define its own        specific variables…  ...
Demo (cont’d) • Adding a new specific template      – 1) create the new “.vm” file                                        ...
Demo (cont’d)  • Using wizards          New …                                                                             ...
The end
Upcoming SlideShare
Loading in …5
×

Mdday 2011-telosys-v1.0

1,186 views

Published on

Conférence MDDAY 2011

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Mdday 2011-telosys-v1.0

  1. 1. Génération de code à partir d’un « modèle léger » Laurent Guérin Telosys Project Leader Sogeti & OW2 ConsortiumParis - 24 novembre 2011
  2. 2. Introduction Sogeti : Company Capgemini : Company belongs to : Plateform Laurent Guérin : Person Telosys : Project leads laurent.guerin@sogeti.com : IDE located in hosts OW2 : Consortium : License France : Country www.telosys.orgDevoxx 2011 – Laurent Guérin – JAVA scaffolding with Telosys ( http://www.telosys.org ) 2
  3. 3. Contexte & Objectifs
  4. 4. Contexte • Constat : – Généralisation de Java :-) – Projet Java = projet lourd :-( • Génération de code ? Oui, mais … – solution légère et efficace, adaptée aux projets à cycle court – solution simple, utilisable par tous – environnement léger (installation en quelques heures/minutes) • Objectif « démarrage rapide » www.telosys.orgDevoxx 2011 – Laurent Guérin – JAVA scaffolding with Telosys ( http://www.telosys.org ) 4
  5. 5. Le projet Telosys Method Tools Framework ( code generation ) ( global & simple ) • Un framework global, auto-suffisant pour construire une application complète • Des outils (plugins Eclipse) pour générer le code initial de l’application et guider le développeur. Puis ouverture sur d’autres cibles… www.telosys.orgDevoxx 2011 – Laurent Guérin – JAVA scaffolding with Telosys ( http://www.telosys.org ) 5
  6. 6. Philosophie du projet “Keep it simple and stupid” ( KISP ? ) – framework simple et léger – « petits outils » (faciles à installer et à utiliser) “Respects des standards” – servlet/JSP/JSPX, JDBC, JPA, http, XML, … “Ouverture” – Open Source ( projet / OW2 consortium ) – Format ouvert (modèle léger = XML) – Templates adaptables  différentes cibles : Telosys fwk, autres Frameworks Java, Flex, PHP, … www.telosys.orgDevoxx 2011 – Laurent Guérin – JAVA scaffolding with Telosys ( http://www.telosys.org ) 6
  7. 7. Outillage • Ne pas réinventer la roue (il existe déjà de nombreux outils), apporter une alternative • Offrir une boite à outils intégrée dans Eclipse, immédiatement utilisable par des développeurs non initiés au MDD • La génération de code pour tous ! - sophistication + www.telosys.orgDevoxx 2011 – Laurent Guérin – JAVA scaffolding with Telosys ( http://www.telosys.org ) 7
  8. 8. Le framework
  9. 9. Le framework • Framework global “all in one“ • Un seul jar (+ JDBC) => pas de "jar hell" ! • Basé sur des concepts simples • Léger (servlet container + base de données) www.telosys.orgDevoxx 2011 – Laurent Guérin – JAVA scaffolding with Telosys ( http://www.telosys.org ) 9
  10. 10. « Global effect » Un seul framework qui couvre toutes les couches de l’application Authenti- cation Presentation Application Business Persistence Services Screen Java Beans Maps ( POJO ) DAO XML conv "VO" SQL JSP + taglib Screen AJAX Managers Framework Services Thin persistence Javascript layer Very simple objects Natively AJAX Commons, logging, I18N, … ( "Pure POJO" ) • “Global” => moins de “glue”, moins d’objets (empreinte mémoire réduite), moins de configuration, … => plus homogène • “Modulaire” (utilisation partielle) www.telosys.orgDevoxx 2011 – Laurent Guérin – JAVA scaffolding with Telosys ( http://www.telosys.org ) 10
  11. 11. Le paradigme « client-serveur » • Une fois chargé dans le navigateur, un écran dialogue avec le server via des requêtes AJAX • Découplage ( facilite la génération de code ) Client-side http Server-side <request screen-name="Employee" screen-id="0" action="get" > </request> Screen Manager Action <response screen-name="Employee" screen-id="0" action="get" > <return code="0" message="Ok" > </return> Framework JavaScript <data> <employee id="23" lastName="Wayne" firstName="John" manager="0" email="" /> </data> </response> Service Service http://myhost:8080/.../Add.svc?p1=2&p2=6 <response service-name="Add"> <return code="0" message="Ok" /> <values> <value result="8" /> </values> <data> </data> </response> www.telosys.orgDevoxx 2011 – Laurent Guérin – JAVA scaffolding with Telosys ( http://www.telosys.org ) 11
  12. 12. La persistance • Une alternative aux “ORM” classiques ORM : JPA (or Hibernate) … High level & "Object Oriented" Java objects Hides the complexity rule the persistence Sometimes misunderstood by the developers ( "lazy/eager" loading, cache effects, DB "attached/detached" entities, "owning side"/"inverse side" links, … ) new new Telosys DAL (based on DAO pattern) Intermediate level & "Record Oriented" Database records One Bean = One Record rule the persistence The developer keeps the control No links, no cache, no byte-code enhancement DB Very simple API : load, save, insert, update, exists, loadList, updateList, … new legacy JDBC API Les deux sont utiles. Low level Au choix … www.telosys.orgDevoxx 2011 – Laurent Guérin – JAVA scaffolding with Telosys ( http://www.telosys.org ) 12
  13. 13. Un framework ne suffit pas… Outils Framework « boilerplate » Plate-forme (Java EE) Application Code générique Code spécifique • Le problème : le code technique et spécifique • Les outils de génération de code sont une réponse possible. Exemples : Ruby on Rails, Grails, Spring Roo, etc… www.telosys.orgDevoxx 2011 – Laurent Guérin – JAVA scaffolding with Telosys ( http://www.telosys.org ) 13
  14. 14. Génération de codeLes différentes approches
  15. 15. Approche « Model First » • Démarche MDD classique, MDA, etc … • « Model - First » => concevoir un model ! – investissement initial important – nécessite de respecter le process (formation) • Incompatible avec un démarrage rapide MODEL Split ! XMI Service name +port 0..n ( XML ) Port Binding Port Type 1 +binding name name name Param 1 +type name StartWithExtensions +output 0..1 +operation 0..n +operation 0..n +input Input 0..1 +input BindingOperation Operation 0..1 Code name name 1 0..1 Output +output +message 1 +fault 0..n +fault 0..n Message Fault +message BindingFault name name 1 1 +part 0..n Part name TOOL TemplateDevoxx 2011 – Laurent Guérin – JAVA scaffolding with Telosys ( http://www.telosys.org ) www.telosys.org 15
  16. 16. Approche « scaffolding » • Scaffolding de type « Database - First » • Très efficace ( rapide ) Database • Mais pas d’action possible sur l’outil Metadata de génération • Pas assez d’informations … TOOL – Noms/types des attributs Java – Règles de validation : min, max, regexp, … Template – Représentation des Booléens (1/0, "T"/"F", … ) Code – etc … • Il faudrait injecter/stocker des informations complémentaires… un modèle ? www.telosys.orgDevoxx 2011 – Laurent Guérin – JAVA scaffolding with Telosys ( http://www.telosys.org ) 16
  17. 17. Les « wizards » • Bien intégré dans l’IDE :-) “Java Model” org.eclipse.jdt.core • Informations en entrée : Workspace files – Saisie utilisateur :-( I.D.E. – Artefacts existants dans le projet • Java class  Java class • WSDL file  Java classes • Génération unitaire, non automatisable • Peuvent être utilisés comme Bulk Code generation des « accélérateurs » ( après la génération de masse ) www.telosys.orgDevoxx 2011 – Laurent Guérin – JAVA scaffolding with Telosys ( http://www.telosys.org ) 17
  18. 18. L’approche « Telosys Tools »
  19. 19. Expression du besoin • Les souhaits : – générer rapidement le code initial des écrans de DB mise à jour des entités d’une base de données Metadata (notion de scaffolding / database first) – avec un outil simple, bien intégré dans l’IDE (comme les wizards) Template – modifier/adapter les « patrons » de génération (notion de templates) – modifier (raffiner) les informations brutes issues des méta-data, pouvoir y ajouter des informations complémentaires Modèle ? – lancer des générations de masse www.telosys.orgDevoxx 2011 – Laurent Guérin – JAVA scaffolding with Telosys ( http://www.telosys.org ) 19
  20. 20. Telosys Tools : le processus • Un processus en 3 étapes Template Database updates customizes Metadata modify & add information Code Repository Code generator generator generates Repository (Lightweight updates model) 1 2 3 Approche Adapter / enrichir Générer “Database-first” le “modèle léger” le code pour initialiser un initial “modèle léger” www.telosys.orgDevoxx 2011 – Laurent Guérin – JAVA scaffolding with Telosys ( http://www.telosys.org ) 20
  21. 21. Telosys Tools • Modèle ( « léger » ) – seules les entités sont gérées – représentation graphique inutile – simple fichier XML (indépendant d’Eclipse) – adhérence Eclipse : limitée à l’ IHM • Moteur de génération de code ( « templating engine » ) – simple – connu – open source – utilisable avec les wizards Basique mais suffisant www.telosys.orgDevoxx 2011 – Laurent Guérin – JAVA scaffolding with Telosys ( http://www.telosys.org ) 21
  22. 22. Editeur de modèle workspace Fichier Repository (model) .dbrep Database Java Classes modifiable Database Java Attributes O/R Mapping www.telosys.orgDevoxx 2011 – Laurent Guérin – JAVA scaffolding with Telosys ( http://www.telosys.org ) 22
  23. 23. Velocity ( templating engine ) Extrait d’un template (génération d’un bean) public class $class.name implements Serializable { private static final long serialVersionUID = 1L; Repository //--- ATTRIBUTES #foreach( $field in $class.attributes ) (model) private $field.formatedType(10) $field.formatedName(12) ; #end //--- CONSTRUCTOR(S) public ${class.name}() { Velocity super(); Context } //--- GETTERS & SETTERS #foreach( $field in $class.attributes ) $class #if ( $field.setter ) public void ${field.setter}( $field.type value ) etc… { this.$field.name = value; } #end #if ( $field.getter ) public $field.type ${field.getter}() { return this.$field.name; } #end #end cf documentation sur le site Apache www.telosys.orgDevoxx 2011 – Laurent Guérin – JAVA scaffolding with Telosys ( http://www.telosys.org ) 23
  24. 24. Qu’est-ce qu’on génère ?
  25. 25. Les artefacts générés N fois • VO Bean (POJO = “entity record”) • VO List (liste de bean avec tri & sélection) Code generator • DAO code « jetable » • Convertisseurs Book .java BookDAO BookConv VO Bean .java .java Data Database XML XML Access <…> VO List Layer Book </ … > Table Con- BookList verters .java DataSet Parsers Files www.telosys.orgDevoxx 2011 – Laurent Guérin – JAVA scaffolding with Telosys ( http://www.telosys.org ) 25
  26. 26. Persistance : objet ou record ? • Approche “graphe d’objets” : les liens peuvent être générés (persistance de type JPA) Bean @ManyToOne Code @OneToMany generator @ManyToMany @OneToOne • Approche “record” : les liens ne sont pas nécessaires, assemblage possible par “agrégation” Code Bean generator Aggregation (composite) DAO www.telosys.orgDevoxx 2011 – Laurent Guérin – JAVA scaffolding with Telosys ( http://www.telosys.org ) 26
  27. 27. Les artefacts générés 1 fois code « initial »  à reprendre Code (ne pas régénérer après évolution) generator request BookMgr BookProc ScreenMap .java .java response ScreenManager ScreenProcedure V C AJAX acts on … BookData .java Book (bean) M ScreenData AuthorList Book.jsp (aggregation ( or .jspx) 0 .. N objects) Shop (bean) Book.js DataSet www.telosys.orgDevoxx 2011 – Laurent Guérin – JAVA scaffolding with Telosys ( http://www.telosys.org ) 27
  28. 28. Screen body (exemple) JSP ou JSPX, pas de HTML ! <%@ taglib uri="/telosys/widgets" prefix="t" %> <t:screenbody> <t:label id="L_EmpId" x="40" y="60" txt="Employee Id : " cl="PK_field_label" /> <t:label id="L_LastName" x="40" y="100" txt="Last name : " /> <t:label id="L_FirstName" x="40" y="140" txt="First name : " /> <t:label id="L_Birthdate" x="40" y="180" txt="Birthdate : " /> <t:field x="200" y="60" id="EmpId" cl="PK_field" size="6" maxlength="6" /> <t:field x="200" y="100" id="LastName" size="30" maxlength="30" value="Aaaa" /> <t:button x="460" y="100" id="b1" txt="My button" onclick="b1_onClick();" /> <t:field x="200" y="140" id="FirstName" size="30" maxlength="30" value="Georges" /> <t:field x="200" y="180" id="Birthdate" size="10" maxlength="10" value="" type="Date" /> <t:radiogroup id="Contract" x="200" y="220"> <t:radioitem id="R_field61" x="0" y="0" value="1" txt="C.D.D. (1)" /> <t:radioitem id="R_field62" x="0" y="20" value="2" txt="C.D.I. (2)" /> </t:radiogroup > <t:checkbox id="Manager" x="340" y="220" value="1" valueoff="9" txt="Manager" /> </t:screenbody > www.telosys.orgDevoxx 2011 – Laurent Guérin – JAVA scaffolding with Telosys ( http://www.telosys.org ) 28
  29. 29. Conventions • "Framework" => "Frame" ! • "CoC" ( Conventions over Configuration ) – Les développeurs savent où placer les fichiers – Les outils savent où générer les fichiers et n’ont pas à modifier les fichiers de configuration • Exemple : Java : 1 package Web : 1 répertoire 1 écran = + www.telosys.orgDevoxx 2011 – Laurent Guérin – JAVA scaffolding with Telosys ( http://www.telosys.org ) 29
  30. 30. Qu’est-ce qu’un projet Telosys ? • Une application Java Web standard src (server side) TelosysTools (+) déploiement WebContent (client side) .war • Le projet peut être organisé pour Maven, ou pas … www.telosys.orgDevoxx 2011 – Laurent Guérin – JAVA scaffolding with Telosys ( http://www.telosys.org ) 30
  31. 31. Démo avec Eclipse • Création d’un nouveau projet Telosys … 1) Création d’un projet « Dynamic Web Project » 2) Importation du « Telosys starter kit » www.telosys.orgDevoxx 2011 – Laurent Guérin – JAVA scaffolding with Telosys ( http://www.telosys.org ) 31
  32. 32. Démo avec Eclipse (suite) 3) Tester le projet (run) 4) Définir les conventions www.telosys.orgDevoxx 2011 – Laurent Guérin – JAVA scaffolding with Telosys ( http://www.telosys.org ) 32
  33. 33. Utilisation des Telosys Tools
  34. 34. Vue d’ensemble Utilisable en ligne Tout peut être fait de commande dans Eclipse Editors Wizards Properties Repository Repository Template Database .dbrep .vm Meta-data generator ( XML ) Code .java generator Context .jsp / .jspx .js Velocity other … www.telosys.orgDevoxx 2011 – Laurent Guérin – JAVA scaffolding with Telosys ( http://www.telosys.org ) 34
  35. 35. Généralisation : nouvelles cibles • Si ça fonctionne pour le framework Telosys … ça peut aussi être utilisé pour …  d’ autres frameworks Java - Spring MVC - Vaadin - etc…  d’ autres langages/plates-formes - Flex (MXML & Action Script) - PHP - etc … www.telosys.orgDevoxx 2011 – Laurent Guérin – JAVA scaffolding with Telosys ( http://www.telosys.org ) 35
  36. 36. La démo … • Connexion à la base de données • Génération du « repository » • Modification/adaptation du « repository » • Génération des objets basiques (Bean, List, DAO, Conv.) • Génération des écrans (server side & client side) • Modification des template • Gestion des liens inter-entités • Génération des beans pour JPA & Validators • Ajout d’un nouveau template spécifique www.telosys.orgDevoxx 2011 – Laurent Guérin – JAVA scaffolding with Telosys ( http://www.telosys.org ) 36
  37. 37. Conclusion
  38. 38. Conclusion Base de Modèle Outils Code initial données léger et le projet est sur les rails… Gain (J/H) Temps de mise en œuvre www.telosys.orgDevoxx 2011 – Laurent Guérin – JAVA scaffolding with Telosys ( http://www.telosys.org ) 38
  39. 39. Le future • Roadmap 2012 / principales évolutions – Repository • Extension (sans limite) des informations pour chaque entité et chaque champ • Templates pour des collections d’entités – Screens design • Release officielle du plugin Screen Builder (WYSIWYG) –Portails • Portlet JSR-168 pour embarquer des écrans Telosys dans une page de portail – NoSQL • DAO pour GAE/BigTable & Cassandra – etc … www.telosys.orgDevoxx 2011 – Laurent Guérin – JAVA scaffolding with Telosys ( http://www.telosys.org ) 39
  40. 40. Questions ?
  41. 41. Appendix
  42. 42. Framework features Screen Maps Widgets TagLib DataSet Services JavaScript framework Commons/util classes SQL DAO Logging Authentication XML converters File upload/download Text/CSV files parser Selectable/Sortable Internationalization beans lists www.telosys.orgDevoxx 2011 – Laurent Guérin – JAVA scaffolding with Telosys ( http://www.telosys.org ) 42
  43. 43. Telosys Screen Builder A visual tool to design the Telosys Screens ( beta version ) www.telosys.orgDevoxx 2011 – Laurent Guérin – JAVA scaffolding with Telosys ( http://www.telosys.org ) 43
  44. 44. Follow the project …• Web site : http://www.telosys.org• LinkedIN http://www.linkedin.com/groups?gid=1340197• Twitter http://twitter.com/telosys• Viadeo (in french) http://www.viadeo.com/hu03/0024uydjnnwew6j/telosys www.telosys.orgDevoxx 2011 – Laurent Guérin – JAVA scaffolding with Telosys ( http://www.telosys.org ) 44
  45. 45. The demo…
  46. 46. Demo • Use the database meta-data to generate the initial repository Database Generation rules Repository Generator Repository .dbrep ( XML ) www.telosys.orgDevoxx 2011 – Laurent Guérin – JAVA scaffolding with Telosys ( http://www.telosys.org ) 46
  47. 47. Demo (cont’d) • The generated repository is editable with an Eclipse plugin editor Database Java Classes updatable Database Java Attributes O/R Mapping www.telosys.orgDevoxx 2011 – Laurent Guérin – JAVA scaffolding with Telosys ( http://www.telosys.org ) 47
  48. 48. Demo (cont’d) • Java fields : – Each Java field can have additional information – Useful for • JSP/TagLib user input validation • "Bean Validation " annotations ( JSR 303 ) or "Hibernate Validators" www.telosys.orgDevoxx 2011 – Laurent Guérin – JAVA scaffolding with Telosys ( http://www.telosys.org ) 48
  49. 49. Demo (cont’d) • Bulk generation www.telosys.orgDevoxx 2011 – Laurent Guérin – JAVA scaffolding with Telosys ( http://www.telosys.org ) 49
  50. 50. Demo (cont’d) • Generator templates – The generator is based on "Velocity" – The templates ( ".vm" files ) can be modified in order to conform with each project requirements • coding style • comments • etc… i.e. : add/remove serialization www.telosys.orgDevoxx 2011 – Laurent Guérin – JAVA scaffolding with Telosys ( http://www.telosys.org ) 50
  51. 51. Demo (cont’d) • Entities links – The foreign keys can be used to generate links between entities –Useful for JPA beans generation www.telosys.orgDevoxx 2011 – Laurent Guérin – JAVA scaffolding with Telosys ( http://www.telosys.org ) 51
  52. 52. Demo (cont’d) • Generator project’s variables – Each project can define its own specific variables… … and use them in the templates #if ( $bean_jpa == "1" ) $link.jpaAnnotations(4) #end www.telosys.orgDevoxx 2011 – Laurent Guérin – JAVA scaffolding with Telosys ( http://www.telosys.org ) 52
  53. 53. Demo (cont’d) • Adding a new specific template – 1) create the new “.vm” file vo_doc_html.vm – 2) add it in the “templates.cfg” file HTML documentation ; ${BEANNAME}.html ; doc/html ; vo_doc_html.vm Title File Folder Template –3) use it in the tool … 53Devoxx 2011 – Laurent Guérin – JAVA scaffolding with Telosys www.telosys.org ( http://www.telosys.org )
  54. 54. Demo (cont’d) • Using wizards New … www.telosys.orgDevoxx 2011 – Laurent Guérin – JAVA scaffolding with Telosys ( http://www.telosys.org ) 54
  55. 55. The end

×