EMFT Texo Project MDD FUTURE Dzmitry Harachka (Belarus)
Agenda <ul><li>Why do we need texo: cases from a life </li></ul><ul><li>Texo introduction </li></ul><ul><li>Pros of Texo <...
Case 1 <ul><li>You need Java Beans </li></ul><ul><li>You need ORM </li></ul><ul><li>You need Web Rich Client UI integratio...
Case 2 <ul><li>XSD with the model of some content types/blocks from a web site </li></ul><ul><li>XSD based CMS (Content Ma...
A life without model
Texo <ul><li>In Latin = construct, build </li></ul><ul><ul><li>MDD extendable technology for generating different artifact...
Texo
Texo <ul><li>Runtime access to POJO beans ECore meta-information </li></ul><ul><ul><li>Generate ECore and POJO wrappers </...
Texo XSD Java POJO EMF ECore Java Texo  meta model Java Texo In-Memory  Runtime Templates ORM JSON + JS has access to all
Texo Internal Data Flow
Texo Pros <ul><li>Code generation inside dev. env (in comparison with UML based generators) </li></ul><ul><li>POJO Java Be...
Texo Pros <ul><li>Override and change standard templates </li></ul><ul><ul><li>Detailed control over generated artifact bl...
Belarus
Testing environment <ul><li>Hudson </li></ul><ul><li>Buckminster (consider as “maven for OSGI bundles”) </li></ul><ul><li>...
XSD vs ECore <ul><li>XSD </li></ul><ul><ul><li>Choice </li></ul></ul><ul><ul><li>Sequence </li></ul></ul><ul><ul><li>Any t...
Reflexion vs ECore <ul><li>Why not use reflexion (and annotations) and generate artifacts basing on it </li></ul><ul><ul><...
Ecore and Texo model classes
Web UI Architecture
Future Plans <ul><li>JPA </li></ul><ul><li>JAXB </li></ul><ul><li>XML and JSON REST </li></ul><ul><li>Web UI Rich JS Clien...
Questions <ul><li>http://wiki.eclipse.org/Texo/   </li></ul><ul><li>http://download.eclipse.org/modeling/emft/texo/updates...
Links <ul><li>http://wiki.eclipse.org/Xpand </li></ul><ul><li>http://www.eclipse.org/modeling/emf/ </li></ul><ul><li>http:...
Belarus cows
Upcoming SlideShare
Loading in...5
×

Eclipse india day 2011 EMFT Texo Project

2,027

Published on

EMFT Texo Project overview for Eclipse India Day 2011 conferece by Dzmitry Harachka

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,027
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
13
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Eclipse india day 2011 EMFT Texo Project

  1. 1. EMFT Texo Project MDD FUTURE Dzmitry Harachka (Belarus)
  2. 2. Agenda <ul><li>Why do we need texo: cases from a life </li></ul><ul><li>Texo introduction </li></ul><ul><li>Pros of Texo </li></ul><ul><li>Project architecture </li></ul><ul><li>Future Plans </li></ul><ul><li>Rich Web UI integration: JSON Web Service </li></ul>
  3. 3. Case 1 <ul><li>You need Java Beans </li></ul><ul><li>You need ORM </li></ul><ul><li>You need Web Rich Client UI integration through JSON Rest Web Service </li></ul><ul><li>Or JAXB based Web Service </li></ul><ul><li>First of all you need model = xsd or ecore </li></ul>
  4. 4. Case 2 <ul><li>XSD with the model of some content types/blocks from a web site </li></ul><ul><li>XSD based CMS (Content Management System) </li></ul><ul><ul><li>Output is XML files </li></ul></ul><ul><li>In-Memory Model Runtime or ORM </li></ul><ul><li>Work with model in Java </li></ul><ul><li>First of all you need a model </li></ul>
  5. 5. A life without model
  6. 6. Texo <ul><li>In Latin = construct, build </li></ul><ul><ul><li>MDD extendable technology for generating different artifacts using templates, runtime for generated java beans meta-information, facilities for working with generated artifacts on different environments, e.g. JSON Web Service </li></ul></ul><ul><li>Part of Eclipse Development Environment </li></ul><ul><ul><li>All modules are Eclipse plugins = OSGI bundles </li></ul></ul><ul><li>Built on the top of EMF technologies </li></ul><ul><ul><li>Xpand for templating and code generating </li></ul></ul><ul><ul><li>Ecore as model representation + built in editors </li></ul></ul><ul><ul><li>XML/XMI serialization </li></ul></ul>
  7. 7. Texo
  8. 8. Texo <ul><li>Runtime access to POJO beans ECore meta-information </li></ul><ul><ul><li>Generate ECore and POJO wrappers </li></ul></ul>
  9. 9. Texo XSD Java POJO EMF ECore Java Texo meta model Java Texo In-Memory Runtime Templates ORM JSON + JS has access to all
  10. 10. Texo Internal Data Flow
  11. 11. Texo Pros <ul><li>Code generation inside dev. env (in comparison with UML based generators) </li></ul><ul><li>POJO Java Beans </li></ul><ul><ul><li>No runtime/compilation dependencies on texo jars </li></ul></ul><ul><ul><ul><li>No specific annotations </li></ul></ul></ul><ul><ul><ul><li>No inheritance from Texo classes (as in EMF code generation) </li></ul></ul></ul><ul><li>Code formatting and code merging </li></ul><ul><ul><li>@generated and @NotGenerated </li></ul></ul>
  12. 12. Texo Pros <ul><li>Override and change standard templates </li></ul><ul><ul><li>Detailed control over generated artifact blocks through built-in annotations model </li></ul></ul><ul><li>Rather easy to introduce new generation type </li></ul><ul><ul><li>Annotations model </li></ul></ul><ul><ul><li>Templates </li></ul></ul><ul><ul><li>Read annotations and generator code </li></ul></ul>
  13. 13. Belarus
  14. 14. Testing environment <ul><li>Hudson </li></ul><ul><li>Buckminster (consider as “maven for OSGI bundles”) </li></ul><ul><li>Ant </li></ul><ul><li>Three steps tests </li></ul><ul><ul><li>Build code generation plugin </li></ul></ul><ul><ul><li>Generate code </li></ul></ul><ul><ul><li>Run unit tests on the build code </li></ul></ul>
  15. 15. XSD vs ECore <ul><li>XSD </li></ul><ul><ul><li>Choice </li></ul></ul><ul><ul><li>Sequence </li></ul></ul><ul><ul><li>Any types </li></ul></ul><ul><li>Ecore </li></ul><ul><ul><li>UML like </li></ul></ul><ul><ul><li>closer to OOP </li></ul></ul><ul><ul><li>Type safety </li></ul></ul><ul><ul><li>Work with a model in a simple way </li></ul></ul>
  16. 16. Reflexion vs ECore <ul><li>Why not use reflexion (and annotations) and generate artifacts basing on it </li></ul><ul><ul><li>Ecore meta-information access is faster </li></ul></ul><ul><ul><li>We would like to have POJO beans </li></ul></ul><ul><ul><li>We want to access business methods of model but not all the methods of POJO (toString and others) </li></ul></ul>
  17. 17. Ecore and Texo model classes
  18. 18. Web UI Architecture
  19. 19. Future Plans <ul><li>JPA </li></ul><ul><li>JAXB </li></ul><ul><li>XML and JSON REST </li></ul><ul><li>Web UI Rich JS Client integration </li></ul><ul><ul><li>Pages and content blocks generation </li></ul></ul><ul><li>Generic architecture for quick conversion from EMF Ecore to any other format </li></ul><ul><li>Other not EMF based code generation patterns </li></ul>
  20. 20. Questions <ul><li>http://wiki.eclipse.org/Texo/ </li></ul><ul><li>http://download.eclipse.org/modeling/emft/texo/updates/interim/ </li></ul><ul><li>Dzmitry Harachka (Belarus) </li></ul><ul><ul><li>http://www.zmicer.com </li></ul></ul><ul><ul><li>http://www.jazzteam.org </li></ul></ul><ul><ul><li>[email_address] </li></ul></ul><ul><ul><li>@zmicercom (a link to presentation at slideshare is available here) </li></ul></ul><ul><ul><li>http://www.linkedin.com/in/dzmitryharachka </li></ul></ul>
  21. 21. Links <ul><li>http://wiki.eclipse.org/Xpand </li></ul><ul><li>http://www.eclipse.org/modeling/emf/ </li></ul><ul><li>http://www.eclipse.org/modeling/emft/ </li></ul><ul><li>http://wiki.eclipse.org/Teneo (Texo’ predecessor) </li></ul><ul><li>http://en.wikipedia.org/wiki/XML_Metadata_Interchange </li></ul><ul><li>http://www.eclipse.org/buckminster/ </li></ul><ul><ul><li>http://www.eclipse.org/modeling/emft/b3/ </li></ul></ul><ul><li>http://wiki.eclipse.org/Texo/Template_Overriding </li></ul>
  22. 22. Belarus cows
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×