Javascript support for EMF, making your models live with Javascript

The Javascript for EMF (JS4EMF) project's objective is to provide Javascript support for EMF. The goal is to make it easier to implement Ecore model behavior (constraints, operations and derived features), author scripts for manipulating Ecore data, implement editor commands without a costly compile, build and launch cycle and otherwise customize EMF-based tools using scripts.

This project was just provisioned. You can see the proposal here

Rapid prototyping with JS4EMF and dynamic EMF

JS4EMF supports using Javascript's dot and bracket notation for accessing Ecore attributes, references and operations. There is special support for accessing named children in a hierarchy, e.g. EClasses within EPackages. Works with both generated Java code and dynamic EMF objects.

Utilize EMF's delegates

JS4EMF implements EMF's delegates for supporting third-party languages, so you can implement constraints, invariants, derived features and operations in Javascript. JS4EMF provides a special script view for making it easier to add the neccessary annotations.

Add extra operations to your classes

JS4EMF supports attaching extra methods to your EClasses, to make scripting even easier. Extra methods can either be embedded in the model using annotations or in separate js-files. Existing EMF classes, like EObject, EEList and EClass have already been extended, for your convenience.

Read the JS4EMF documentation and join the discussion at the forum to understand how to utilize JS4EMF.

Want to know more? About JS4EMF

Incubation

JS4EMF is currently in the Validation (Incubation) Phase.

Current Status

We're in the process of moving code from e4, cleaning up the API and improving the tests and documentation. A release is planned for the first half of 2011.