3MF: EMF to the infinity... and beyond!

Session Type: 
Standard [35 minutes]

Eclipse Modeling Framework (EMF) is great and its greatness is awarded by its wide spread and usage (and not only within the modeling community). Its status of Super Java Beans on steroids is incontestable. But, isn't there still a place for improvements?

EMF has sound architecture and is one of the best representative of Joshua Bloch's book: "Effective Java". But one often used design pattern within this architecture is still withholding EMF from reaching the infinity: singleton!

Modern architectures are not betting anymore on this pattern. Progress in object-oriented programming about dependency injection (DI) finally deprecate the singleton pattern. Among other reasons, DI helps with making programs more testable by reducing boilerplate code and facilitating the change of implementations classes.

For instance, Eclipse Xtext is successfully architectured atop the Google Guice dependency injection framework. Xtext is acclaimed about this architecture for its modularity and configurability.

In this talk, I will present you some studies I made about replacing EMF's singletons (some registries INSTANCE, EPackages and EFactories eINSTANCE) by dependency injection. It will show you some of the benefits it can provide:

- no more need for generation gap pattern (link 1, link 2) to elegantly manage customization of generated code.
- change from plain EMF objects to CDO native objects (ultimate goal: make CDO's legacy mode useless).
- easy slice and dice of EMF by separating specific code of all supported platforms: Eclipse, RCP, RAP, GWT, OSGi (Equinox/Felix), standalone.

The result of this study is called 3MF as a pun for EMF 3. 3MF aims to make EMF reach the infinity ... and beyond!

Schedule info

Time slot: 
27 March 17:00 - 17:50
Lake Thoreau


Experience level: