Discussions

News: Announcing XMF-Mosaic Open-Source under EPL

  1. Announcing XMF-Mosaic Open-Source under EPL (1 messages)

    XMF-Mosaic is an Eclipse-based environment for developing XMF-based applications. XMF is an engine that runs a dynamic programming language offering facilities including dynamic typing; closures; meta-programming; domain specific language extensions. Mosaic is written in XMF and offers UML-style modelling; meta-modelling; XMF debugging; object browsers and editors; XMF text editor and compiler. XMF-Mosaic contains its own documentation and is available via a Windows installer here . XMF-Mosaic offers many useful features out of the box and is highly configurable and extensible. Meta-packages are an example of a novel technology supported by XMF-Mosaic. Meta-packages allow you to tailor the existing model editors for your own Domain Specific Language simply by extending the basic XMF-Mosaic meta-model. Here is an example information model without the use of meta-packages: Say we want to generate some annotated Java for a J2EE application: @Entity @Table(name="ORDER_TABLE") public class Order { private int id; private String address; @Id @Column(name="ORDER_ID") public int getId() { return id; } public void setId(int id) { this.id = id; } @Column(name="SHIPPING_ADDRESS") public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } } Then the original information model is not sufficient since we need a way of representing the J2EE components and the information needed to produce the annotations. This is a J2EE domain specific language. We can do this in XMF-Mosaic by defining a new language via the meta-package mechanism. The new language contains J2EE-specific modelling concepts and the XMF-Mosaic tooling automatically configures itself to support these new concepts: The new language is a proper extension of the XMF-Mosaic modelling language – not some fudge achieved by marking up the existing modelling elements. The J2EE language is defined as a meta-model and contained in a meta-package. How do we achieve this? It is easy to get a first cut language definition and associated tooling. Just define a new meta-package containing the language as an extension of the basic meta-concepts (called XCore in XMF-Mosaic): Then create a new model specifying the language that is to be used: And that’s it. The new tooling comes for free. Once you have defined your language, you can make it come to life by using XMF to program at the meta-level. For example it is easy to write code generators for your new language that produce code like the J2EE code shown above. XMF-Mosaic provides support for performing constraint checks on models so you can define rules for your language. For example each EntityBean should have at most one primary key. All of the tooling for modelling is defined in XMF too so you can dive in and easily change how the tooling works for your new language, modifying how elements are drawn on the screen. For more information about meta-packages see this paper.
  2. I would just like to add that XMF itself is Open source under the Eclipse Project License (EPL). http://www.ceteva.com/index.html