h1. Eclipse Modeling Package : New and Noteworthy

h2. Getting Started

You can download the Modeling Package for your platform on the "Eclipse Download Page":https://www.eclipse.org/downloads/ . This package is focused on providing framework and tools to leverage models : an Ecore graphical modeler (class-like diagram), Java code generation utility for RCP applications and the EMF Framework, model comparison support, support for XSD schemas, OCL and graphical modeler runtimes. It includes a complete SDK, developer tools and source code.

This package is built and maintained by Eclipse Modeling enthusiasts. Dropping a note or in the "Eclipse Forum":https://www.eclipse.org/forums/index.php/f/182/ to give feedback is always appreciated. 


h2. Re-designed Class Diagram

After many years of stalling, the introduction of Sirius in the Eclipse Modeling stack enabled a complete redesign of the Ecore Diagram Editor.

!https://www.eclipse.org/ecoretools/images/intro.png!

A slicker design, more capabilities, more stability.

If you need to create or explore an Ecore model, or even if you only need to produce diagrams, try it, have a look "on the brand new website":https://www.eclipse.org/ecoretools/  and "give your feedback":https://www.eclipse.org/forums/index.php/f/165/  
  

h2. Model Comparison and Merge

The package provides structural diff and merge capabilities thanks to *EMF Compare*, any file which structures can be understood by EMF will be compared structurally, independently from the serialization format. No need to understand XMI or even binary resources to compare and merge them.
  
 
!https://wiki.eclipse.org/images/9/98/EMF_Compare_3.0_UI_actions.png!
  
Futhermore this semantic comparison includes support for inter-file references allowing you to make sure you will never break a reference when doing your commit by forgetting a file for instance, EMF Compare will detect this and ask you to add it in your commit. This behavior can now be configured in the preference page. 

!images/compare-resolution-strategy.png!

Have a look on the "EMF Compare Luna New and Noteworthy":https://wiki.eclipse.org/EMF_Compare/ReleaseReview/Luna#New_.26_Noteworthy for further information.  


h2. EMF Client Platform and EMF Store included by default

EMF Client Platform and EMF Store graduated and got included in the package alongside CDO. 
Here are some links to discover the technology : "Getting Started with ECP":http://eclipsesource.com/blogs/tutorials/getting-started-with-the-emf-client-platform/ and the "documentation":https://www.eclipse.org/ecp/documentation.html  

h2. More features included but a faster package

Thanks to the commitment of the modeling projects which are in the package, plugins are now started on demand and not upfront.  This lead to a better startup time as less classes have to be loaded and less integration issue which could block users which are not even using the features which are failing.  

After Startup :

|_. Eclipse Release |_. Active plugins |_. Installed Plugins |
| Kepler Modeling   | 118              |  538                |
| Luna Modeling     | 106 *(-12)*      |  678 *(+140)*       |
| Luna Standard     | 91               |  250                |


In doing so we have been able to integrate more features in the package without adding pain to peoples which are not going to use it.


Thanks again to "CDO":https://www.eclipse.org/cdo/ , "Sirius":https://www.eclipse.org/sirius/  and "EMF Client Platform":https://www.eclipse.org/ecp/ for improving their plugins in this regard !


h2. Integration

The discovery catalog will no longer block the Eclipse user interface if you experience a slow or unreliable network. The user is now able to cancel while the catalog is being retrieved.

!images/discovery.png!

Integration tests have been added, making sure every global contribution of an EPackage to the EMF registry is resolvable.


