Kenn Hussey is an independent software developer, consultant, and blogger. A strong advocate of open specifications and open source, he is the leader of the Model Development Tools (MDT) project, a committer on the Eclipse Modeling Framework (EMF) project (among others), and representative of the Eclipse Foundation at the Object Management Group (OMG). He holds Master of Science (Computer Science) and Bachelor of Computer Science (Honors) degrees from Acadia University. Kenn’s blog can be accessed at Kenn has posted 4 posts at DZone. View Full User Profile

On Where We're Using EMF...

  • submit to reddit

Where are you using the Eclipse Modeling Framework (EMF)? I've blogged recently about how perhaps the "E" in EMF ought to stand for Extensibility. More and more, I wonder whether maybe it should stand for "Everywhere" instead. While many feel a burning need to bring the Web to Eclipse, at Cloudsmith we see things a little differently. We see big potential in leveraging the great technologies at Eclipse in new and interesting ways (and places!), one of which is to bring Eclipse (and, more specifically, EMF) to the Web.

When EMF made its debut at Eclipse some eight years ago, it was a framework for developing IDE-like applications. Then, it followed the lead of the Eclipse platform and expanded its reach to support Rich Client Platform (RCP) applications. Earlier in the Helios release cycle, we added support for the Rich Ajax Platform (RAP), which - thanks to the RAP folks' great work, particularly support for "single sourcing" an application - can almost be treated as a variant of RCP.

With Helios M7, however, EMF moves past the boundaries of the Eclipse platform, and desktop applications in general, by adding support for the Google Web Toolkit (GWT) as a new application runtime. We've done this by formalizing the EMF code generator's notion of a "runtime platform" through an enumeration. Platforms that previously were only implicitly supported - 'IDE', 'RCP', and 'RAP' - are now explicit enumeration literals. And now we've added a new literal for 'GWT'.

So, what does this mean? Well, depending on which runtime platform you choose in your generator model (and which platform you're targeting), you'll get a different result when you generate your code. For IDE and RCP, the only difference is in the editor (since RCP comes with certain limiting assumptions). With RAP, your edit and editor code isn't all that different from RCP, except that you'll have the ability to run against alternative versions of EMF's runtime UI plug-ins, which have been customized for RAP.

In the case of GWT, however, when you generate your model and edit code (support for editor and tests will come over the next few months), you'll be targeting an entirely different EMF runtime, tailored to be translatable into Javascript modules and to leverage the capabilities of GWT (RPC serialization, localized message resources, image bundles, etc.).

Ed and I will have more to say about the technical details of this new runtime over the coming weeks. In the meantime, you can refer to the New and Noteworthy page for Helios to help you get started with developing EMF-based applications for GWT! 


Published at DZone with permission of its author, Kenn Hussey.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)


Michael Eric replied on Wed, 2012/09/26 - 4:00pm

I've always viewed the core of emf as a runtime platform that doesn't have any eclipse dependencies. I've used it this way in the past, and think that is still it's biggest strength, but one that is under promoted.


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.