Eclipse Modeling Framework Project (EMF)

The EMF project is a modeling framework and code generation facility for building tools and other applications based on a structured data model. From a model specification described in XMI, EMF provides tools and runtime support to produce a set of Java classes for the model, along with a set of adapter classes that enable viewing and command-based editing of the model, and a basic editor.

EMF builds include XML Schema Definition (XSD), now a component of the Model Development Tools (MDT) project, and an EMF-based implementation of Service Data Objects (SDO). XSD provides a model and API for manipulating components of an XML Schema, with access to the underlying DOM representation of the schema document.

Other subprojects, such as Model Query, Model Transaction, and Validation Framework, are available separately.

The next release of EMF is scheduled for the end of June 2010, along with the rest of the Helios projects.

Model Query

The query component facilitates the process of search and retrieval of model elements of interest in a flexible yet controlled and structured manner. Provides API support for the basic EObject based Condition objects that are used to formulate queries for EMF models.

The query component provides the following classes/interfaces to support queries.

  1. The IEObjectSource interface provides the search scope elements to be used in a query.
  2. The SELECT class implements a template-function that does the iteration over model elements and applies the search condition on each; it collects the resulting elements into a QueryResultSet object and returns it to the caller.
  3. The FROM class represents the elements to search. It is responsible of providing an appropriate iterator for the elements in the search space.
  4. The WHERE class applies the search conditions over the elements in the search set.
  5. The UPDATE class passes the elements who satisfy the search condition to a caller-supplied modification function. It collects the modified elements into a QueryResultSet object and returns it to the caller.
  6. The QueryResultSet class represents the set of elements returned by a given query.
  7. The EObjectCondition class is the abstract parent of all conditions that deal with model-elements (i.e., EObjects). It incorporates the services of a PruneHandler in order to answers whether or not to prune the element tree at a specific element and thus ignore its children.
  8. The ConditionPolicy class is used to allow the user to decide how to apply a given condition on a collection of a model-element EAttributes or EReferences values. Supports both the: exists (ANY) and for-all (ALL) semantics.
  9. The EObjectStructuralFeatureValueCondition class is the parent class for conditions that are responsible for checking the values held in model-elements attributes or references.

EMF (Core)

EMF is a modeling framework and code generation facility for building tools and other applications based on a structured data model. From a model specification described in XMI, EMF provides tools and runtime support to produce a set of Java classes for the model, a set of adapter classes that enable viewing and command-based editing of the model, and a basic editor. Models can be specified using annotated Java, XML documents, or modeling tools like Rational Rose, then imported into EMF. Most important of all, EMF provides the foundation for interoperability with other EMF-based tools and applications. For more detailed information see the EMF Overviews and Project Plan.

CDO

The CDO (Connected Data Objects) Model Repository is a distributed shared model framework for EMF models and meta models. CDO is also a model runtime environment with a focus on orthogonal aspects like model scalability, transactionality, persistence, distribution, queries and more.

CDO has a 3-tier architecture supporting EMF-based client applications, featuring a central model repository server and leveraging different types of pluggable data storage back-ends like relational databases, object databases and file systems. The default client/server communication protocol is implemented with the Net4j Signalling Platform.

Compare

EMF Compare brings model comparison to the EMF framework, this tool provides generic support for any kind of metamodel in order to compare and merge models. The objectives of this component are to provide a stable and efficient generic implementation of model comparison and to provide an extensible framework for specific needs.

Validation (Incubation) PhaseModel Query 2

The Query2 component facilitates the process of search and retrieval of emf model elements in a structured format with an additional advantage that resource loading is minimized during execution.

Model Transaction

The transaction component provides a model management layer built on top of EMF for managing EMF resources. It provides API that include extensions to the EditingDomain and related APIs of the EMF.Edit framework, and an internal model of transactions. It consists of two layers: a non-Eclipse core, providing primarily the "transaction model", and an Eclipse workspace integration layer.

Net4j

Net4j is an extensible client-server system based on the Eclipse Runtime and the Spring Framework.

SDO

Service Data Objects (SDO) is a framework that simplifies and unifies data application development in a service oriented architecture (SOA). It supports and integrates XML and incorporates J2EE patterns and best practices. EMF includes an EMF-based implementation of Service Data Objects.

Teneo

Teneo is a database persistency solution for EMF using Hibernate or EclipseLink. It supports automatic creation of EMF to Relational Mappings. EMF Objects can be stored and retrieved using advanced queries (HQL or EJB-QL).

Validation Framework

The validation component provides capabilities used to ensure model integrity.

News

Apr 8th, 2009 - Details about Changes to the Activities Example in EMF 2.5M7 are available.

Apr 3rd, 2009 - Metamodeling with EMF: Generating concrete, reusable Java snippets is available.

Mar 26th, 2009 - EMF: Eclipse Modeling Framework, 2nd Edition sells out at EclipseCon '09! Get your copy today!

Jan 30th, 2009 - Scale, Share and Store your Models with CDO 2.0 (Webinar) is available.

Build Feeds Build News

Sorry, can't access database.

Modeling Corner

Want to contribute models, projects, files, ideas, utilities, or code to EMF or any other part of the Modeling Project? Now you can!

Have a look, post your comments, submit a link, or just read what others have written. Details here.