The EMF Parsley DSL: an extensive use case of Xtext/Xbase powerful mechanisms

Subscribers:
24,000
Published on ● Video Link: https://www.youtube.com/watch?v=PSOV4C10Tfs



Duration: 25:39
689 views
7


By Francesco Guidieri, Vincenzo Caselli & Lorenzo Bettini

EMF Parsley is a GUI renderer built on top of EMF that allows developers to quickly develop User Interfaces. The main goal of the Project is to provide an easy way to build complex applications, hiding some boring details, with simple and powerful APIs. EMF Parsley in fact provides some built-in components like Trees, Tables and Forms that can be easily mashed up and customized.

One of the greatest strengths of EMF Parsley is the DSL that lets the user fully customize the UI in a very simple way, thanks to the Dependency Injection that is deeply used in its core. We also work-shadowed at Xtext and re-used a polymorphic approach to correctly dispatch the customized code depending on user-defined EMF types.

For all these reasons, in this talk we will present EMF Parsley as an Xtext-success-story because of several mechanisms that have been re-used as well as in Xtext.

Starting from a single specification file, Parsley generates many (possibly related) Java classes; in order to do that, we fully exploit all the features of the Xbase model inferrer.
It also generates a plugin.xml file for the generated extension points; this plugin.xml is kept in synchronization (i.e., merged) with possible manual modifications by the developer. In order to achieve this, we implemented a custom Eclipse builder which seamlessly cohabits with the standard Xtext builder. Note that since in a single project there might be many EMF Parsley specifications, but only one single plugin.xml can be there, this also shows an example of how to generate a single source starting from several DSL specifications.

The EMF Parsley DSL is meant to live together with EMF Parsley Java API: Java API exploits generic types and generic methods and Xbase, thanks to its powerful type inference mechanisms, allows the EMF Parsley DSL developer to write simple, readable and concise specifications, while still enjoying the benefits of a static type system.




Other Videos By Eclipse Foundation


2017-07-11Code Coverage in Practice, by Evgeny Mandrikov
2017-07-11Getting started with Jubula - an UI test automation framework, by Markus Tiede
2017-07-11The new era of ALM in Airbus with Tuleap, by Nicolas FANJEAU & Alain BERNARD
2017-07-11A new framework for Text Edition in Platform: why, what, how? by Mickael Istria
2017-07-11Testing Eclipse plugins: from unit to end to end testing
2017-07-11sensiNact: Open platform for smarter cities - applications in European and Japanese cities
2017-07-11How can you contribute to Eclipse, by Olivier Prouvost
2017-07-11Lean and Easy IoT Applications with OSGi and Eclipse Concierge, by Jan S. Rellermeyer
2017-07-11Visual Studio Team Services can help Eclipse developers? You're kidding me! by François Bouteruche
2017-07-11Learnings from Excel, by Holger Schill & Sebastian Zarnekow
2017-07-11The EMF Parsley DSL: an extensive use case of Xtext/Xbase powerful mechanisms
2017-07-11Formalizing Financial Protocols with Xtext, by Denis Ignatovich
2017-07-11Deep dive into Xtext scoping - local and global scopes explained, by H. Schill & S. Zarnekow
2017-07-11Debugging DSLs with Xtext's new Tracing API, by Christian Schneider & Miro Spoenemann
2017-07-11How EASE unleashes the scientific power of Airbus' engineers in Eclipse, by Alain Bernard
2017-07-11Ignite talks, session 2
2017-07-11Debug Java code like a Pro, by Mikaël Barbero
2017-07-11Driving Intelligent Transportation System with Capella, by Jerome Montigny
2017-07-11Jenkins at Scale, Baptiste Mathus & Michael Pailloncy
2017-07-11TypeScript, Future of JavaScript and rise of the transpilers, by Sebastien Pertus
2017-07-11Theia - One IDE Framework For Desktop & Cloud, by