FoundationsA lot of documentation exists and can be easily found over the internet on the Eclipse platform. The community around the project is quite large, and tends to grow rapidly. Simply stated, Eclipse is a kind of universal tool platform - a generic open extensible IDE for anything. Eclipse's popularity among developers lies not only in the fact that it is an open source product, but also in its extensibility and versatile nature. The latest technologies, frameworks and architectures are integrated in the platform via hundreds of plug-ins. This diversity allows the good, the bad and the ugly: developers have a platform in which they can access to a huge amount of tools, but they're not always able to use them together properly. Experience shows that software modeling and development processes can bring valuable benefits in such cases. One of the goals of Merlin is to enhance modeling tools & techniques used in the platform and simplify their integration and usability. Eclipse Modeling Framework (EMF) has a great role in that scope: EMF is the core modeling and code generation framework of the Eclipse platform. The most recent and most important tools built on Eclipse have models that are EMF based (UML2, Visual Editor, Hyades, etc.). Merlin components are Eclipse extensions built on top of EMF. They make a large use of the technologies promoted by the modeling framework and by the Eclipse platform, hence doesn't seek to re-invent the wheel. Being developed on top of EMF, Merlin naturally uses JET (Java Emitter Templates) technology for providing code generation templates with advanced scripting capabilities. JET is a subcomponent of EMF that uses a JSP-like language to define the templates. There are very good articles and tutorials about JET that can be useful to learn more. Beyond the tools, Merlin components are designed in line with OMG standards such as QVT (Query View Transformation). While complying with these standards, Merlin's philosophy stays, without a surprise, attached to the core values of agile methods it promotes. Hence, the deliberate choice of privileging simplicity and users' expectations over strict compliance is taken.
EMF
The Eclipse Modeling Framework is the Eclipse's open-source
implementation of OMG EMOF (lightweight Meta Object Facility).
QVT
QVT is a specification of model transformation which is at the core of the MDA technology. It specifies standards for querying a model and transforming it into another one. This allows transforming Platform Independent Models into Platform Specific Models. In alignment with QVT concepts, Merlin proposes tools for transforming EMF based models, in order to ease and automate the transitions between software modeling activities.
JET
The Java Emitter Templates is a technology that is part of the EMF components. JET is using JSP-like syntax and principles for defining code generation templates aimed at text based outputs. Like JSP, JET is compiled into java code behind the scenes. But unlike JSP, the generated output may be used for any other textual language than java. Java has however an important place in JET: JMerge, a sub-component of JET is used to allow incremental changes to be made on generated java source. More detailed information about JET can be found in those tutorials and articles. Merlin makes use of JET to let developers easily define and enact their custom code generation templates within the Eclipse platform.
Extending Eclipse
Eclipse-based tools consist of plug-ins that extends the Eclipse platform. The Eclipse plug-in architecture also allows tools like Merlin to define extension points that other plug-ins can extend. This architecture is fundamental to understanding Eclipse as the Eclipse platform is itself built entirely out of plug-ins on top of a small core runtime. |
|