Jump to: navigation, search

Modeling Corner

Welcome to the Modeling Corner! On this page you will find materials contributed by the Eclipse Modeling Community. Want to contribute something? If you have a Bugzilla account, you can edit this page to add your own contribution or review others' work.

Or, you can post your contribution to Modeling @ Eclipse Plugin Central.

Models

Atom Syndication Format in EMF

By Peter Nehrer, 2006-06-09
This project aims to provide an EMF-based model for representing the Atom Syndication Format. Its deliverables include an extensible Ecore model along with a set of generated implementation classes (both model and editing support). The Ecore model closely follows the official Atom Syndication Format Specification. Content rules that cannot be represented in the model itself are encapsulated in a set of external validators. This gives the model the ability to represent incomplete Atom documents or those that are not 100% standard compliant.

Reviews

No reviews yet. Edit this document to contribute a review.

EMF Persistency Layer using Hibernate/JPOX with support for EJB3-EAnnotations

By Martin Taal, 2006-06-08
Elver EMF Store is a persistency solution for EMF using Hibernate or JPOX/JDO 2.0. It supports automatic creation of EMF to Relational Mappings and the related database schemas. The solution also contains a runtime layer to support specific EMF features. EMF Objects can be stored and retrieved using advanced queries (HQL or JDOQL). EMF resource implementations are provided for integration with EMF Editors. The persistence logic and mapping can be controlled using EJB3-like annotations. Most of the EJB3 mapping standard is supported.

Reviews

Eclipse.pngEclipse.pngEclipse.pngEclipse.png EMF Persistency Layer using JDO/JPOX, 
a distribution and screenshot, by Noud deBrouwer, 2006-03-30
Zero-effort persistency. 
Distribution
Screenshot

Sympedia GenFw Generator Framework

By Eike Stepper, 2006-02-04
Sympedia GenFw is a flexible and easy to use framework for software artifact generation. Input models can be associated with generators via extensible rule sets. Additional Content providers, generators and rules can be provided by Eclipse plugins.

Reviews

Eclipse.pngEclipse.pngEclipse.pngEclipse.png Sympedia GenFw Generator Framework Review, 
by Philipp W. Kutter, 2006-05-25
We have been using GenFw productively in a large project in the financial industry over the last 3 months. 
Originally we have chosen GenFw because it allowed to do certain things (like project specific code 
formatting/adding removing templates) which where not working in EMF back then. The usage of GenFw was 
straight forward, and it helped us nicely manage our custom JET templates. The option to do EMF without 
merging is something very interesting in very large projects, like the one we worked on. The developer 
of GenFw, Eike Stepper did a tremendous job porting his framework back from Eclipse 3.2/EMF 2.2 to 
Eclipse 3.1/EMF 2.1. Without this special effort, our EMF introduction would have been canceled by 
the management. In the meantime the two main issues with EMF (formatting, adding/removing templates) 
are solved, and our client was ready to move on to 3.2. Currently we investigate the usage of GenFw 
for pure code generation with Jet Templates, which are triggered by OCL rules. Last but not least, 
I would like to mention that the tutorials where great to get our people started with the framework.

XML Processing Instruction support

By Peter Nehrer, 2006-12-05
This small project provides support for modeling XML Processing Instructions in EMF. It consists of a model for representing Processing Instructions and a customized XMLResourceImpl, which handles loading and saving of PIs. Currently, Processing Instructions are not supported natively in EMF.

To add support for Processing Instructions to your model, modify your model's Resource implementation to subclass PIResourceImpl instead of XMLResourceImpl. Furthermore, add PIItemProviderAdapterFactory to your ComposedAdapterFactory instances. When a Processing Instruction is encountered in the context of a mixed-content element (or the document root), it will be added to the corresponding feature map, much like text, comments, and cdata sections.

The code was compiled against Eclipse 3.2.1 and EMF 2.2.1 in J2SE-1.4 execution environment.

Reviews

No reviews yet. Edit this document to contribute a review.


Frameworks

MetaDiff

By Mark Kofman, 2005-08-02
MetaDiff is a generic model comparison solution. Generic, in a sense, that it should make possible to compare models based on different meta-models specified by EMF. It is important to point out that result is not a tool but a framework. In addition to model comparison functionality, framework should also give a possibility to extend available comparison algorithms, and provide practical way of working with different meta-models.

Reviews

No reviews yet. Edit this document to contribute a review.

Open ArchitectureWare for EMF

By Sven Efftinge, 2005-05-25
The open ArchitectureWare framework for EMF consists of the following parts:

Workflow engine: You could think of it as an Ant for MDSD processes. [more]

Xpand ported to EMF: Xpand is a template language created for code generators, only. Therefore it's very simple and effective. It provides:

  • expressions on core model level (not Java level)
  • operations for ELists (filter, union, intersection, complement)
  • invocation of features on ELists (e.g "package.classifiers.name" will return a list of ecore:EString instances) - simple constructs (FOREACH, IF, LET)
  • a FILE construct (define which files to generate inside the templates)
  • Call to Helpers (static Java-Methods)

Xpandeditor ported to EMF:

  • syntax highlighting
  • code completion
  • syntax validation
  • outline view

An example and basic documentation is included.

Reviews

Eclipse.pngEclipse.pngEclipse.pngEclipse.png'1/2    oAW Review, by MilesParker, 2006-12-25

I did my first pilot project in EMF using JET templates and found it a really neat and straight-forward solution for generating text. But I don't think it is the ideal code-generation tool in terms of transparanancy and modularity. oAW is far more powerful, expressive and maintainable at the small cost of a steeper initial learning curve. Anyone doing complex model driven code generation really should check oAW out. I did not use the JET editor which I am sure would have made me more positive about the tool itself. But as a scripting language based on JSP, it is like Java * 2, but without Java advantages like strong-typing and with the dreaded angle brackets. Like Java, it is so generalized that simple behavior becomes dense and repetive .. <% for (Iterator i = enum.attributes(); i.hasNext(); ) { %> <% Attribute attribute = (Attribute) i.next(); %> ...' We know from the meta-model what attributes contain,and iterating through references is the primary taks for code-generation. Taking advantage of such knowledge is the main point of a DSL. In any case, for any kind of modular, maintainable approach you would need to write much of the expansion directly in Java string manipulation methods -- back to square one. So oAW was a revelation, even if the intial expereince was a bit off-putting. Setup was difficult -- I thought I would never find the magical incantation to make everything work. The XTend language seemed to be arbitraily orthogonal to Java syntax. «French Quotation Marks»!? The range of tools seemed random and bewildering. It made me think of the joke "every programmer wants to write a language one day, except for those of us who want to write ten". But support was great and many of my issues were self-inflicted. The funky XTend syntax is actually a great design. Precisely because the language doesn't look like Java or XML one can mentally shift between XTend code and the target language very seemlessly and naturally. I realize now that a major issue with JET was the use of the same language constructs at the meta-level -- I felt like I was always doing mental backflips. And other oAW languages follow the Expression language syntax, which is a quite elegant splice of Java and Functional languages. For above, we can do something like: «EXPAND MYMETHOD FOREACH attributes» And then provide expansions for all the different kinds of Attribute(s) we might be interested in. I've gone on too long, but I hope that oAW becomes an EMF standard or at least widely used -- perhaps someday the .ecore codegen itself can be migrated to XTend! ;)

IBM Model Transformation Framework

By Catherine Griffin, 2005-01-05
The IBM Model Transformation Framework supports the development of tools that compare, merge, transform or generate text from EMF models. Samples include generation of HTML documentation from Ecore models and a bi-directional UML2.0 to XSD transformation.

Reviews

No reviews yet. Edit this document to contribute a review.

CDO Example Workspace

By Eike Stepper, 2004-10-11
CDO (Connected Data Objects) is an object persistence technology that integrates with EMF (Eclipse Modelling Framework) to transparently store objects of an arbitrary business model in a relational database system. This is an example workspace to demonstrate the basic functionality of CDO. Please visit the website for further instructions. Any feedback is greatly appreciated. Happy persisting...

Reviews

Eclipse.pngEclipse.pngEclipse.pngEclipse.png1/2
A must have for those who love EMF and distributed applications, by Seweryn Niemiec, 2006-05-18
Imagine you have the same instance of
EMF model on many Eclipse platforms and machines. Editors are notified about changes made in other editors. Additionally you get model persistence in relational database. New version utilizes non-blocking IO and has well prepared, ready to use example of distributed EMF Editor and CDO Resource Browser.


Tools/Utilities

EUML216.gifeUML2 - UML & EMF Designer

By yves yang, 2007-2-10
eUML2 for Java is a powerful UML modeler designed for Java developer in eclipse. The main features are:

  • Real-time code/model synchronization
  • UML2.1 compliant and support of OMG XMI
  • Advanced reversed engineering
  • Powerful true dependency analyze tools
  • JDK 1.4 and 1.5 support
  • Customizable template support.

It provides an EMF native graphic editors with 2 diagrams and the Java code generation driving through class diagram directly. In the version 2.2.0 of Free edition, it is possible to export UML model to EMF.

Reviews

No reviews yet. Edit this document to contribute a review.

EBPMN16.gifeBPMN Designer

By yves yang, 2007-2-10
eBPMN Designer is a high extensible and intuitive graphic tools for BPMN modeling. It implements:

  • Full object model of the specification BPMN 2.0
  • Facility to design Embedded sub-processses
  • Type conversion.
  • Connectivity control and advice.
  • Powerful modeling assistance for creation and insertion.
  • Download
  • Visit Site
  • Web demo
  • Screenshot

Reviews

No reviews yet. Edit this document to contribute a review.

TOPCASED Graphical Ecore Editor

By David Sciamma, 2006-05-09
TOPCASED provides a graphical ecore editor:

  • Wizard to create new ecore diagram from scratch or from an existing ecore model
  • Handle multi-diagrams
  • Tree or overview outline with full edition capabilities
  • Image export
  • Dedicated documentation view
  • ...lots of new features are coming TOPCASED is an opensource project licensed under EPL.
  • Download
  • Visit Site

Reviews

Eclipse.pngEclipse.pngEclipse.pngEclipse.png TopcaseD Review, 
by Philipp W. Kutter, 2008-01-08

We use the TopcaseD ECore editor since years, and at the moment we run version 1.2 under Eclipse 3.4M4 and EMF 2.4.

Everything works perfectly, and we are looking forward to migrate to the successor of the TopcaseD ECore editor, the forthcomming official Eclipse MDT Ecore editor.

Congratulations to the TopcaseD project both for their product, and the successful integration with the mainstream Eclipse projects! We hope to see more industry players to contribute to Eclipse in the future.

Acceleo

By Jonathan Musset, 2006-04-25
Acceleo is an OpenSource code generator designed to implement the MDA approach and to improve software development productivity. It includes tools and editors making it easy to learn and to adapt to any kind of technology and it is fully based on EMF. Acceleo main features are the followings :

  • Any meta-model support including UML 2.0, UML1.4 (using a MDR bridge)
  • Template Editor with syntax colouring, in-line completion for meta-model elements, scripts, services and error detection for compilation and runtime errors
  • Reflective Editor for precise and real-time preview of generation results
  • Execution chains acting as a “glue” for real project generation, specifying which model to use & where and what to generate
  • Tree-like syntax very easy and natural to use
  • Fully extensible thanks to the use of Services developed in Java
  • Incremental generation support: manual code is kept after every generation Acceleo has been designed by MDA experienced users for real users, so we hope you enjoy it!
  • Download
  • Visit Site
  • Screenshot

Reviews

Eclipse.pngEclipse.pngEclipse.pngEclipse.png
Acceleo Review, by Adelino, 2006-05-21
After doing the quick start tutorial found on the Acceleo web site, I am very impressed by the simplicity and quality of this plug-in. Acceleo allows with a few clicks to generate code from an EMF model using one or more JET-like templates.

realMethods Framework

By Tyler Winston, 2006-01-30
Quickly generate multi-tier design pattern based J2EE applications from one or more ECore files. Includes complete support for Struts, Hibernate, Ant, Axis Web Services, and more. Portal and AJAX support are coming soon.

Reviews

No reviews yet. Edit this document to contribute a review.

Tefkat

By michael lawley, 2005-06-22
Tefkat is an implementation of a fully-declarative model transformation language for EMF.

Tefkat features include:

  • support for multiple source and target models,
  • models based on Ecore, MOF2, UML2, and those derived from XML Schema,
  • a built-in editor,
  • a source-level debugger, and
  • generation of trace models linking source and target elements. 2006/04/04: Tefkat is

now Open Source!

Reviews

Eclipse.pngEclipse.pngEclipse.pngEclipse.pngEclipse.png
Way Cool, by Simon Pope, 2005-07-16
I`ve been waiting for a public version of TEFKAT with much anticipation.

Dynamic JET Generator

By Joel Cheuoua, 2004-12-10
This is an Eclipse plugin, based on EMF and JET templates, whose goal is to ease the process of automating the code generation process. Using Merlin JET Generator, you'll be able not only to dynamically generate code from your EMF Genmodel, but also yo can have a better control on the generation thanks to a customizable mapping capability between the JET templates and any Genmodel elements

Reviews

Eclipse.pngEclipse.pngEclipse.pngEclipse.png1/2
Dynamic JET Generator Review, by Ed Merks, 2005-06-01
I highly recommend the JET editor if you are doing editing of JET templates. It's cool!
Eclipse.pngEclipse.pngEclipse.pngEclipse.png
Great .jet editor, by J366rg von Frantzius, 2005-04-06
The included .jet editor has very good syntax highlighting and some code completion, better than JETEditor. Works with Eclipse 3.1 M5 (0.4.6 unfortunately is broken with 3.1 M6).

Emfatic

By Chris Daly, 2004-11-10
Emfatic is a language for representing EMF Ecore models in a simple textual form.

There are currently several different ways to construct and modify EMF Ecore models, including annotated Java, XML Schema, Unified Modeling Language (UML) tools, and the EMF model editor. The advantage of Emfatic is that it represents an entire Ecore model in a single source file and it uses a Java-like syntax familiar to many programmers.

Emfatic comprises several Eclipse plug-ins, which include an editor and a parser for the language. The Eclipse plug-ins add actions that allow Emfatic source code to be compiled into an Ecore model and also allow Ecore models to be decompiled into Emfatic source code.

Reviews

Eclipse.pngEclipse.pngEclipse.pngEclipse.png1/2
Emfatic Review, by Felix Leipold, 2006-06-12
Emfatic is a nice and clear way to express emf meta models. It's way less cluttered than annotated interfaces. I'd love to see it in the standard emf distribution, perhaps with autobuild emf->ecore.
Eclipse.pngEclipse.pngEclipse.pngEclipse.png
Emfatic Review, by Rui Figueira, 2004-12-14
very cool! Auto-completion would be nice, however :D

JET-Editor

By Alexander Rupsch, 2004-10-03
Editor for JET-templates. It is intended to support the development of JET-templates in a quality which is adequate to other eclipse language support.

Reviews

Eclipse.pngEclipse.pngEclipse.pngEclipse.png1/2
JET-Editor Review, by Ed Merks, 2004-11-23
It's very cool and definitely makes templates easier to read and write.
Eclipse.pngEclipse.pngEclipse.pngEclipse.png
Must have!, by Jorg von Frantzius, 2004-10-05
Working on complex .jet sources without this editor can drive you nuts. Made my JET coding life much easier.

Marven

By Alexander Rupsch, 2004-10-03
Marven is a model based generator implemented as eclipse plugin. It is based on EMF JET-templates and the UML 2.0 metamodel implementation for eclipse. It comes with a comprehensive example to generate EJBs out of UML-models.

Reviews

No reviews yet. Edit this document to contribute a review.

XPath Support for EMF

By Peter Nehrer, 2006-02-16
This software component provides support for using the XPath language to navigate arbitrary EMF models. Jaxen is used as the underlying XPath engine, with a custom document model adapter that allows it to navigate EMF object graphs using XPath constructs.

Reviews

No reviews yet. Edit this document to contribute a review.

Notification Gatherer

By Constantine A Plotnikov (on behalf of IBM ATS), 2004-10-07
The Notification Gatherer component is a simple utility component that automates listening to events that happen in EMF object graph. Such code usually is not very complex, but it is quite error prone because a lot of small things should be done in a lot of places. So, from our experience, the component enhances clarity of the code and reduces number of bugs. The component is a reimplementation of the idea that was previously implemented in NSMDF and NSUML open source projects. These projects have an idea that is similar to EMF one, but their APIs significantly differ from EMF API. The plug-in is submitted as patch to EMF team. URL points to corresponding RFE.

Reviews

No reviews yet. Edit this document to contribute a review.


Extended EMF Reflective Editor (Exeed)

By Dimitrios Kolovos, 2006-14-02
Exeed is a tree-based EMF model editor for editing models of arbitrary ECore metamodels. It has been implemented on top of the built-in reflective EMF editor and provides features such as customizable labels and icons for model elements both in the tree view and in the properties view. To implement customized editors using the built-in EMF tools, one needs to generate one editor for each ECore metamodel and then customize the generated code. By contrast, in Exeed customization is achieved using specific EAnnotations in the ECore metamodel itself and thus, it is not required to generate and customize one editor for every ECore metamodel. Exeed has been developed in the context of the Epsilon GMT component and is open-source software.

Reviews

No reviews yet. Edit this document to contribute a review.

GMF Wizards/Macros

By Dimitrios Kolovos, 2007-14-09

This extension enables users to write and execute wizards/macros that automate complex modelling tasks in GMF editors. The extension has been implemented atop GMF and thus, it works with existing GMF-based editors (e.g. the ECore and UML2 editors) without needing to customize/re-generate them. Wizards are defined using an OCL-based task-specific imperative language (Epsilon Wizard Language) which is a part of the Epsilon GMT component and provide support for user input and integration with the GMF editing stack to enable users undo/redo the effects of wizards on the edited models.

Reviews

No reviews yet. Edit this document to contribute a review.

Groovy EMF Builder

By Joern Dinkla, 2007-28-11

The Groovy programming language allows the creation of domain specific languages with its "BuilderSupport" class. This is used by EMFBuilder to create a language defined by an Ecore EFactory. Because UML2 uses EMF, UML2 models can be created using the EMFBuilder, too.

This allows a direct representation of the model in the Groovy language to programmatically create or process Ecore/EMF models.

Reviews

No reviews yet. Edit this document to contribute a review.

Examples

EMF Eclipse Forms Editor

By Steve Blass, 2004-10-04
This example demonstrates how to convert a generated EMF editor to an Eclipse Forms based editor by changing the generated editor to extend FormEditor rather than MultipageEditorPart and using addPages() rather than createPages(). In particular this example implements Master/Details form editing of the libary model presented in the EMF overview documentation.

Reviews

Eclipse.pngEclipse.pngEclipse.png1/2
EMF Eclipse Forms Editor Update, by Steve Blass, 2004-10-26
The form editor example has been revised. The new version is a stand alone plugin delivering a Master/Details editor able to edit arbitrary EMF models.
Eclipse.pngEclipse.pngEclipse.pngEclipse.pngEclipse.png
EMF Eclipse Forms Editor Review, by Mark Diggory, 2004-10-13
Great example, I might recommend packaging the source as a plugin projects so it can be reused without going through the process of setting up each plugin project just to get the source compiling. Great job.
Eclipse.pngEclipse.pngEclipse.pngEclipse.pngEclipse.png
EMF Eclipse Forms Editor Review, by Kiran, 2004-10-07
Hi Steve, This is a very good example which helped me a lot.

Sandwich Pattern

By Philipp W. Kutter, 2004-10-04
Frameworks on top of EMF: the Sandwich Pattern - see http://www.montages.com/index.php?lbl=sandwich for details

Reviews

No reviews yet. Edit this document to contribute a review.


Other

Lightweight Modeling

By Ronald, 2006-04-30
This article on TheServerSide brought my attention to EMF. It might be interesting to others (newbies like me?).

Reviews

No reviews yet. Edit this document to contribute a review.

EMF / GEF Shapes Example

By Chris Aniszczyk, 2005-06-17
This takes the GEF Shapes example and replaces its custom model with an EMF based one.

Reviews

No reviews yet. Edit this document to contribute a review.