Eclipse Projects

Introduction and Development Notes

Introduction and development notes of a list of eclipse projects

    The Eclipse open source community has over 60 open source projects. These projects can be conceptually organized into seven different "pillars" or categories:

  1. Enterprise Development

  2. Embedded and Device Development

  3. Rich Client Platform

  4. Rich Internet Applications

  5. Application Frameworks

  6. Application Lifecycle Management (ALM)

  7. Service Oriented Architecture (SOA)


  I am familiar with some of them, such as EMF, GEF, GMF, UML2, BPEL, WST, and M2M. Following I will introduce these project respective, and give a summary of the common program problems.


 Eclipse Modeling Framework (EMF)


     EMF is a useful and powerful modeling framework for eclipse. It is a java framework and code generation facility for building tools and other applications based on a structured model. Since EMF was born, a lot of eclipse tool projects define their model using EMF.

     In this article "Eclipse Modeling Framework", I will show you the basic information of EMF, Ecore model and generator, and tell you how to work with EMF. Read the article.

     There is also some programming notes about EMF development: 

     1.  Article "Take a Look at the Generated Code" will show you a brief introduction of the EMF generated code, such as Package, Factory and Reflective EObject API.   Read the article.

     2.  A adventage of EMF is the persistence API provided by EMF, which can serialize model objects to XMI and XML. How to serialize objects is discussed in "Object Persistence using EMF API".     Read the article.

     3.  Sometimes, we would like to simply share objects without requiring generated implementation classes to be available. Article "Dynamic EMF" will show you how to achieve this goal.   Comming soon.

     4.  EMF.Edit Framework add support for generating adapter classes that enable viewing and command-based (undoable) editing of a model, and even a basic working model editor. All these will be introduced in article "Work with EMF Edit Framework".    Read the article.

     5.   As the last article, "The Design Pattern in EMF" represent the design pattern Observer used in EMF.  Read the article.


 Graphical Editing Framework (GEF)


      The Graphical Editing Framework (GEF) provides a framework for creating visual editors while being model agnostic. GEF is based on Model-View-Controller (MVC) architecture. You can use Plain Old Java Objects (POJOs) to build your models, and also you can use EMF to build them. The View part in GEF is designed using a lightweight graphical system called Draw2D, it provides figures and layout manager which form the graphical layer. The Controller part in GEF is called EditPart, it play the bridge role between Model and View.
       The following articles are not only showing you the brief introduction of GEF, and introducing you how to build a GEF application.

       1. First, if you know nothing of GEF or you have some doubt about how GEF works, this article "Introduction of GEF and Draw2D" will show you a brief introduction of GEF and Draw2D.  Read the article .

      2. When you know some basic idea of GEF, let me use a example to show you how to build a GEF application. The article " A Case Study of GEF Development" will show you the procedure of developing a GEF application.  Read the article.

     3. Just as I said, you can define you models using EMF, the article "Using EMF with GEF" will show you how to use EMF-built model in the GEF projects.  Read the article.

    4. In this article "Problems and Solutions in GEF Development", I will show some solutions of common problems you maybe encounter in the development.  Comming Soon

    5. If you want to add some additional functions in your GEF project, I think this article "Additional Functions in GEF Application" maybe help you.  Read the article.

    6. In the article "Design Pattern in GEF",  I summarize six design pattern used in GEF.  Read the article.


 Graphical Modeling Framework (GMF) 


    The Eclipse Graphical Modeling Framework (GMF) provides a generative component and runtime infrastructure for developing graphical editors based on EMF and GEF. The project aims to provide these components, in addition to exemplary tools for select domain models which illustrate its capabilities. GMF is divided in two main components: the runtime and the tooling used to generate editors capable of leveraging the runtime.

        The following articles will show you a brief introduction of GMF and GMF development:

        1. Article “Introduction of GMF” shows you what is GMF, the relationship of GMF, EMF and GEF and the workflow of development using GMF.  Read the article.

        2. How to build an application using GMF is introduced in “A Case Study of GMF Development” with a simple example. Moreover, the configurations of these three models (graphical definition, tooling definition and mapping definition) are explained in detail.   Read the article.

        3. When the generated GMF code can not meet your entire requirement, you need to modify some code or add some function in the application. Article “Customize on the generated code” will show you how to achieve this goal.    Coming soon...


 Model Development Tool UML2 (UML2)


     Eclipse UML2 is a part of Model Development Tool (MDT) project. Besides UML2, there are also OCL, XSD, EDOM plug-ins.

     UML2 is an EMF-based implementation of UML 2.x meta-model for E clipse platform. The objectives of this subcomponent are to provide a useable implementation of the meta-model to support the development of modeling tools, a common XMI schema to facilitate interchange of semantic models, test cases as a means of validating the specification, and validation rules as a means of defining and enforcing levels of compliance.

    Another project called UML2Tool is a set of GMF-based editors for viewing and editing UML2 model.

    I have wrote three articles to introduce Eclipse UML2 model and OMG UML 2.0 criterion.

    1. I will introduce how to work with UML2 in the article named "Work with UML2", show you how to load and save UML2 model, how to merge two package and several problems you maybe encount in the programming.  Read the article.

   2. When you use UML to describe your system, you maybe feel it is inconvenient, so the UML Profile is a mechanism for you to adapte and tailore UML to meet your own specific needs. This article named "Using UML Profile customize UML" will show you how to use UML Profile to customize UML.  Read the article.

    3. In UML 2.0 criterion, a new kind of diagram is added, it called "Composite Diagram". In the article, "Composite Diagram in UML 2.0", I will show you the functions and aspects of the Composite Diagram. Read this article.


 Eclipse BPEL Project (BPEL)


    The goal of the BPEL Project is to add comprehensive support to Eclipse for the definition, authoring, editing, deploying, testing and debugging of WS-BPEL 2.0 processes. WS-BPEL (Web Services Business Process Execution Language), or BPEL, is a vendor-neutral specification being developed by OASIS to specify business processes as a set of interactions between web services. By providing these tools, this project aims to build a community around support for BPEL in Eclipse.

    First, an introduction article "Eclipse BPEL Project" can help you get an overview of Eclipse BPEL Project. The key pieces of functionalities will be showed in detail. Read this article.

    Then, there are several special topics of bpel model.

    1. When you use EMF-built model, you can use XMI and XML Serialization to persistent the objects, how can I customize the serializing process are showed in article "Customize Resource and ResourceFactory in EMF Model". Read the article.

     2. An important part of BPEL Designer is the management of namespaces in bpel model, That is showed in article "Namespace Management in BPEL Model". Read the article.

     3. BPEL file must have a related WSDL, and there are several schema aspects in WSDL. Article "WSDL and XSD handling in BPEL Model" will show you how to handle WSDL and XSD using WST.WSDL model and MDT.XSD model. Read the article.

     4. Current BPEL Designer can only create and edit executable process, how to realize this is showed in article "Extend BPEL Designer for Abstract Process". Read the article.


 Eclipse Modeling Project (EMP)

    The Eclipse Modeling Project focuses on the evolution and promotion of model-based development technologies within the Eclipse community by providing a unified set of modeling frameworks, tooling, and standards implementations.  It contains a lot of useful sub-projects, such as EMF, GMF, UML2, etc. As a introduction, article "Introduction of Eclipse Modeling Project"  shows you the sub-projects inclued in EMP, and introduces some of it for reference purposes only.   Read the article.

    In EMP, there is a very important sub-project called Eclipse Model to Model Transformation (M2M),  it  is a key aspect of model-driven development (MDD). The M2M project will deliver a framework for model-to-model transformation languages. The core part is the transformation infrastructure. Transformations are executed by transformation engines that are plugged into the infrastructure. There are three transformation engines that are developed in the scope of this project, ATL, Procedural QVT (Operational) and Declarative QVT (Core and Relational). "Introducing ATL" will give you a brief introduction of ATL including the language features, transformation theory and engine work mechanism.  Read the article.

    Other project I want to introduce here is The Altas Model Weaver (AMW), it contained in Generative Modeling Technologies project which is to produce a set of prototypes in the area of Model Driven Engineering (MDE) and is is the official research incubator project of the top-level Eclipse Modeling Project. The AMW is a tool for establishing relationships between models. The links are stored in a model, called weaving model. It is created conforming to a weaving metamodel. Article "The Altas Model Weaver" introduce some brief idea of AMW.  Read the article.