Difference between revisions of "Texo"

From Eclipsepedia

Jump to: navigation, search
(Future Topics)
(4 intermediate revisions by one user not shown)
Line 23: Line 23:
 
* Supports most '''XML Schema constructs''' (as EMF)
 
* Supports most '''XML Schema constructs''' (as EMF)
  
* Webservice support: [[JSON_REST_Web_Services|JSON]] as well as [[XML_REST_Web_Services|XML]]
+
* Generic CRUD and Query web service layer: [[JSON_REST_Web_Services|JSON]] as well as [[XML_REST_Web_Services|XML]]
  
* '''Runtime model support''', key to implementing generic functionality as security, archiving, query generation and generic web services.
+
* '''[[#Runtime_topics|Runtime support]]''': model@runtime, key to implementing generic functionality as security, archiving, query generation and generic web services.
  
* Support for '''java annotations''' and '''annotations defined in the model''', to drive code generation and to be translated into java source code annotation
+
* [[Direct_Java_Annotations|Support]] for '''java annotations''' and '''annotations defined in the model''', to drive code generation and to be translated into java source code annotation
  
 
New functionality which is being developed right now gives these additional benefits:
 
New functionality which is being developed right now gives these additional benefits:
 
* '''Multiple annotation models''' (JPA, Hibernate Search, etc.) supported
 
* '''Multiple annotation models''' (JPA, Hibernate Search, etc.) supported
* '''Easy integration with RIA''' user interface through a generic model-driven JSON service
+
* '''Generic RIA/HTML5 model maintenance UI'''  
  
Further in the future, Texo will be extended to generate the web user interface layer. This will give additional benefits in terms of increased developer productiviy and quality.
+
These developments will give additional benefits in terms of increased developer productiviy and quality.
  
 
== Download & Install ==
 
== Download & Install ==
Line 121: Line 121:
  
 
This is a list of future topics which we may (or may not) work on in the future, it is a list of ideas:
 
This is a list of future topics which we may (or may not) work on in the future, it is a list of ideas:
* develop a generic or generated Mobile Web UI solution and connect it with the Texo server side
+
* develop a generic (and extendable) mobile/html5 model editor which can/should support most models out of the box
 +
* use this generic model editor as a basis for a generated model editor in html5/mobile
 
* support code generation which generates separate source files which can be manually changed, so not following the @generated pattern used in standard EMF
 
* support code generation which generates separate source files which can be manually changed, so not following the @generated pattern used in standard EMF
 +
* integrate with full text indexing and search for the JSON/XML web service layer, incorporate this in the generic model editor
 +
* support for no-sql databases on the server side
 +
* integrate with OLAP/Mondrian solutions, back-end and front-end
  
 
Feel free to react on the EMFT newsgroup with more ideas.
 
Feel free to react on the EMFT newsgroup with more ideas.

Revision as of 10:15, 7 June 2013

Contents

Introduction

Texo supports EMF-model concepts in (web)server environments through JPA-annotated code generation and JSON web service functionality at runtime.

For the latest news on Texo visit the Texo blog.

Texo uses components currently present in the Eclipse Modeling Framework (EMF) and Eclipse Modeling Framework Technology (EMFT) projects.

Texo is a proposed open source component in the Eclipse Modeling Framework Technology (EMFT) project.


Texo-client-server.png

Benefits of using Texo

Benefits of using current Texo (November 2012):

  • Code Generation:
    • Generates true pojo's from an Ecore model or XSD without direct compile time link from generated entities to 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 generates JPA annotations in the source code or can generate the orm.xml mapping from the ecore models, there are specific JPA model annotations which can be used to control JPA/ORM generation.
  • Supports most XML Schema constructs (as EMF)
  • Generic CRUD and Query web service layer: JSON as well as XML
  • Runtime support: model@runtime, key to implementing generic functionality as security, archiving, query generation and generic web services.
  • Support for java annotations and annotations defined in the model, to drive code generation and to be translated into java source code annotation

New functionality which is being developed right now gives these additional benefits:

  • Multiple annotation models (JPA, Hibernate Search, etc.) supported
  • Generic RIA/HTML5 model maintenance UI

These developments will give additional benefits in terms of increased developer productiviy and quality.

Download & Install

Texo is installed through the Eclipse update manager. For more details see the Download & Install page.

Quick Start

The quick start page lets you generate code in just a few steps...

Documentation

The following pages contain detailed information on different parts of the Texo solution.

Blog

For general announcement and other information visit the Texo Blog.

Code generation topics

ORM/JPA generation topics

Runtime topics

JPA/Persistence integration

  • EntityManager: describes how Texo generated code and Texo framework code integrates with the EntityManagerFactory.
  • DAO support, Texo generated Dao classes: Texo is capable of generating Dao classes which make it easier to query and access objects in the database, in addition the generated Dao classes support cross referencing functionality.
  • Object Store concept: the object store integrates the Texo model layer with the JPA layer. You can query the database using EClasses and do cross-reference checks.

XML/JSON REST Web Service Support

Framework

  • Components: discusses how you can replace internal Texo components with your own implementation to override specific Texo behavior.
  • Runtime Model: describes the runtime model access to Texo generated objects.

RCP Persistence using EMF Resources and Texo

  • Texo EMF Resource: describes the implementation of Texo EMF resources allowing you to persist data from your RCP in a 2- and 3-tier architecture.

EMF/XML/XMI

  • XML-XMI Serialization: covers the main api to convert Texo generated pojo's from and to XML and XMI.
  • EMF Conversion: discusses the Texo-EMF conversion API which make it possible to convert any Texo generated pojo from/to an EObject. This is useful for when you want to make use of other EMF components like EMF Compare.

Miscellaneous

  • Test data generation: Texo is tested with about 40 models, the test-cases involve conversion from and to EMF, XML and XMI. An important foundation of the test cases is the automatic generation of test data on the basis of the model. This gives a better test coverage and makes it very easy to add new test models to the system and integrate them in the main test runs.

Main Design Concepts

The Texo project is based on a number of main design concepts and philosophies.

  • Annotated Models and Model Annotations: Texo uses annotated models for artifact generation. The goal is to support multiple annotation models (JPA, model oriented, etc.), model annotations can be converted to java annotations or other output. Annotations are set manually and further created by Model Annotators.
  • Runtime model: Texo (just as EMF) supports working with the domain model at runtime. Texo generates Model wrappers to give generated pojo's a Model api.
  • Working with generated artifacts: Texo follows the same philosophy as EMF: generated code can be manually changed, manual changes will be kept/maintained when re-generating the code.

For a more detailed description visit the Design Concepts page.

Texo and EMF

Texo is related to EMF and makes use of specific EMF components. Both Texo and EMF generate java code representing an ecore model in Java. There are however several distinctive differences between the approach chosen and code generation implemented by EMF and Texo. This is covered in detail on this page.

Support & Troubleshooting & Bugzilla

For troubleshooting and issues encountered by other users see the trouble shooting page.

To enter a new bugzilla you can use the following link:

https://bugs.eclipse.org/bugs/enter_bug.cgi?product=EMFT&component=Texo&version=0.5

Support is given on the EMFT newsgroup which you can find here:

Developing

Developer information (GIT, how to setup a developers environment) can be found on the Developers page.

Future Topics

This is a list of future topics which we may (or may not) work on in the future, it is a list of ideas:

  • develop a generic (and extendable) mobile/html5 model editor which can/should support most models out of the box
  • use this generic model editor as a basis for a generated model editor in html5/mobile
  • support code generation which generates separate source files which can be manually changed, so not following the @generated pattern used in standard EMF
  • integrate with full text indexing and search for the JSON/XML web service layer, incorporate this in the generic model editor
  • support for no-sql databases on the server side
  • integrate with OLAP/Mondrian solutions, back-end and front-end

Feel free to react on the EMFT newsgroup with more ideas.

See also