<?xml version="1.0" encoding="ASCII"?>
<discovery:DiscoveryDefinition xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:discovery="http://www.eclipse.org/amalgamation/discovery/1.0">
  <categories name="Model To Text" description="Model to Text (also known as code generation) tools and languages." relevance="6" image48="">
    <components name="Acceleo" provider="Eclipse.org" description="Acceleo is a standard-based template language focused on usability and pragmatism." license="EPL" image32="images/acceleo.png">
      <sitesURLS>http://download.eclipse.org/modeling/m2t/acceleo/updates/releases/3.2</sitesURLS>
      <sitesURLS>http://download.eclipse.org/releases/juno/</sitesURLS>
      <overview summary=" Acceleo is a pragmatic implementation of the Object Management Group (OMG) MOF Model to Text Language (MTL) standard.&#xA;&#xA;You do not need to be an expert to start using the plug-ins and create your first code generator : using the provided example projects and the powerful completion feature of the Acceleo editor, it is very easy to get started once you understand the basic principles. " screenshot="images/acceleo-screenshot-320x240.png"/>
      <id>org.eclipse.acceleo.sdk</id>
    </components>
    <components name="Jet" provider="Eclipse.org" description="JET is an Eclipse-based code generator framework based on JSP." license="EPL" image32="images/jet.png">
      <sitesURLS>http://download.eclipse.org/releases/juno/</sitesURLS>
      <overview summary="JET allows you to easily generate textual artifacts in the Eclipse environment&#xA;in a syntax similar to JSP. It supplies tag libraries for navigating XML&#xA;documents, EMF-based documents (including UML2) and for writing template&#xA;results to the Eclipse workspace.&#xA;" url="http://wiki.eclipse.org/M2T-JET"/>
      <id>org.eclipse.jet.sdk</id>
      <hiddingFeatureID>org.eclipse.jet</hiddingFeatureID>
    </components>
    <components name="Xpand" provider="Eclipse.org" description="Xpand is an efficient code generation framework with a statically-typed template language and support for arbitrary input model types." license="EPL" image32="images/xpand.png">
      <sitesURLS>http://download.eclipse.org/releases/juno/</sitesURLS>
      <overview summary="Xpand allows to write code generators for many different types of models. These&#xA;models include EMF models, UML models, XML documents and textual DSL models.&#xA;Any type of source code can be generated from the model sources. Xpand has&#xA;strong emphasize on reducing the effort to create industry-strength code&#xA;generators and provides outstanding Eclipse integration.&#xA;&#xA;Xpand's features include:&#xA; &#x2022; support of various modeling tools&#xA; &#x2022; support of EMF (Eclipse Modeling Framework)&#xA; &#x2022; model-to-code transformations&#xA; &#x2022; model-to-model transformations             &#xA; &#x2022; model validation&#xA; &#x2022; expression language&#xA; &#x2022; static code analysis&#xA; &#x2022; aspect oriented programming&#xA; &#x2022; support for standalone execution" screenshot="images/xpand-screenshot-320x240.png"/>
      <id>org.eclipse.xpand.sdk</id>
      <hiddingFeatureID>org.eclipse.xpand</hiddingFeatureID>
    </components>
  </categories>
  <categories name="Model To Model" description="Model to Model tools and transformation languages." image48="">
    <components name="ATL" provider="Eclipse.org" description="ATL is a model transformation language and toolkit, including an ATL transformation engine and an IDE for ATL." license="EPL" image32="images/atl.png">
      <sitesURLS>http://download.eclipse.org/releases/juno/</sitesURLS>
      <overview summary="The ATL component of the M2M project provides ways to produce a set of target models from a set of source models. An ATL transformation program is composed of rules that define how source model elements are matched and navigated to create and initialize the elements of the target models. Developed on top of the Eclipse platform, the ATL toolkit provides a number of standard development tools (advanced editor, debugger, profiler, etc.) that aims to ease development of ATL transformations." screenshot="images/atl-screenshot-320x240.png" url="http://www.eclipse.org/m2m/atl/"/>
      <id>org.eclipse.m2m.atl.sdk</id>
      <hiddingFeatureID>org.eclipse.m2m.atl</hiddingFeatureID>
    </components>
    <components name="Declarative QVT" provider="Eclipse.org" description="Editors for QVT Relational and QVT Core documents" license="EPL" groups="//@filters.0" image32="images/qvtd.png" incubation="true" visible="false">
      <sitesURLS>http://download.eclipse.org/releases/juno/</sitesURLS>
      <overview summary="QVTd project currently provides Editors for&#xA;&#xA;- QVT Relational documents&#xA;- QVT Core documents&#xA;&#xA;QVTc and QVTr execution is work in progress" screenshot="images/qvtd-screenshot-320x240.png" url="http://www.eclipse.org/projects/project_summary.php?projectid=modeling.m2m.qvt-relations"/>
      <id>org.eclipse.qvtd</id>
    </components>
    <components name="Operational QVT" provider="Eclipse.org" description="Implementation of the Operational part of the OMG QVT (Query/View/Transformation) open standard" license="EPL" image32="images/qvto.png">
      <sitesURLS>http://download.eclipse.org/releases/juno/</sitesURLS>
      <overview summary="Based on MDT OCL, the Operational QVT project aims to be fully compliant with the OMG QVT standard providing a powerful Eclipse IDE with feature-rich editor (code completion, outline, navigation, etc.), debugger, project builders, launch configurations, deployment facilities and Ant support." screenshot="images/qvto-screenshot-320x240.png" url="http://wiki.eclipse.org/M2M/Operational_QVT_Language_%28QVTO%29"/>
      <id>org.eclipse.m2m.qvt.oml.sdk</id>
    </components>
  </categories>
  <categories name="Concrete Syntax Development" description="Tools and frameworks to develop dedicated modeling tools. " relevance="4">
    <components name="Extended Editing Framework" provider="Eclipse.org" description="EEF (Extended Editing Framework) is a presentation framework for EMF models. " license="EPL" image32="images/eef.png">
      <sitesURLS>http://download.eclipse.org/releases/juno/</sitesURLS>
      <overview summary="The Extended Editing Framework aims at giving another way to improve the EMF model creation phase by providing new services dedicated to editing and using more appealing editing elements. The way to obtain these services and elements is based on a generative approach similar to the EMF.Edit one. The framework provides advanced editing components for the properties of EMF elements and a default generation based on standard metamodels using these components." screenshot="images/eef-screenshot-320x240.png" url="http://www.eclipse.org/modeling/emft/?project=eef"/>
      <id>org.eclipse.emf.eef.edt</id>
      <hiddingFeatureID>org.eclipse.emf.eef.runtime</hiddingFeatureID>
    </components>
    <components name="Graphical Modeling Framework Tooling" provider="Eclipse.org" description="GMF Tooling is a framework to generate functional graphical editors based on the GMF Runtime." license="EPL" image32="images/gmf.png">
      <sitesURLS>http://download.eclipse.org/releases/juno/</sitesURLS>
      <sitesURLS>http://download.eclipse.org/modeling/gmp/gmf-tooling/updates/releases/</sitesURLS>
      <id>org.eclipse.gmf.sdk</id>
    </components>
    <components name="Graphiti" provider="Eclipse.org" description="Graphiti is a graphical API that enables the fast and easy creation of graphical tools for any kind of domain models." license="EPL" groups="//@filters.0" image32="images/graphiti.png" incubation="true">
      <sitesURLS>http://download.eclipse.org/graphiti/updates/0.7.0/</sitesURLS>
      <sitesURLS>http://download.eclipse.org/releases/juno/</sitesURLS>
      <overview summary="The goal of Graphiti is to support the fast and easy creation of graphical tools, which can display and edit underlying domain models using a tool-defined graphical notation. Graphiti supports the developer in getting to a first version of an editor with very low effort by:&#xA;- Hiding platform specific technology (e.g. GEF / Draw2D on Eclipse)&#xA;- Providing rich default implementations inside the framework&#xA;- Providing a default look and feel that was designed in close co-operation with usability specialists" screenshot="images/graphiti-screenshot-320x240.png" url="http://www.eclipse.org/graphiti/"/>
      <id>org.eclipse.graphiti.sdk.feature</id>
      <messages title="Early Access" message="Please note that this component is not a participant of the juno simultaneous release and that it is provided here as an early access."/>
    </components>
    <components name="Xtext" provider="Eclipse.org" description="Xtext is a framework for development of programming languages and domain specific languages (DSLs). " license="EPL" groups="//@filters.0" image32="images/xtext.png">
      <sitesURLS>http://download.eclipse.org/releases/juno/</sitesURLS>
      <overview summary="Xtext is a framework for development of programming languages and domain&#xA;specific languages (DSLs). Just describe your very own DSL using Xtext's simple&#xA;EBNF grammar language and the generator will create a parser, an AST-meta model&#xA;(implemented in EMF) as well as a full-featured Eclipse text editor from that.&#xA;&#xA;The Framework integrates with frameworks from Eclipse Modeling such as EMF, GMF&#xA;and M2T as well as other Eclipse based technologies. Development with Xtext is&#xA;optimized for short turn-arounds, so that adding new features to an existing&#xA;DSL is a matter of minutes. Still sophisticated programming languages can be&#xA;implemented." screenshot="images/xtext-screenshot-320x240.png"/>
      <id>org.eclipse.xtext.sdk</id>
    </components>
  </categories>
  <categories name="Modeler" description="Modeling environment tools." relevance="3">
    <components name="UML2 Tools" provider="Eclipse.org" description="The UML2Tools component is a set of the UML 2.1 compatible diagram editors, based on the Eclipse GMF framework" license="EPL" groups="//@filters.0" image32="" incubation="true" visible="false">
      <sitesURLS>http://download.eclipse.org/releases/juno/</sitesURLS>
      <overview summary="UML2Tools provides support for Class, Composite Structure, Component,&#xA;Deployment, UseCase, Activity and StateMachine diagram. It also contains&#xA;supplementary Profile Definition diagram, enabling the visual integration of&#xA;the custom defined stereotypes with the other supported diagrams." screenshot="images/uml2tools-screenshot-320x240.png"/>
      <id>org.eclipse.uml2tools</id>
    </components>
    <components name="Papyrus" provider="Eclipse.org" description="Papyrus provides an integrated, user-consumable environment for editing models based on UML and other related languages such as SysML." license="EPL" groups="//@filters.0" image32="images/papyrus.png" incubation="true">
      <sitesURLS>http://download.eclipse.org/releases/juno/</sitesURLS>
      <overview summary="Papyrus is an open source component of the&#xA;Model Development Tools (MDT) subproject to provide an integrated environment&#xA;for editing UML and SysML models. Specially, this project will provide the glue&#xA;around valuable UML and SysML diagram editors (GMF-based or not) and other MDE&#xA;tools. It will also offer support for UML and SysML profiling mechanisms." screenshot="images/papyrus-screenshot-320x240.png" url="http://www.eclipse.org/papyrus"/>
      <id>org.eclipse.papyrus.sdk.feature</id>
    </components>
  </categories>
  <categories name="Reverse Engineering" description="Tools focused on getting models from source code." relevance="2">
    <components name="MoDisco" provider="Eclipse.org" description="MoDisco is an extensible framework to develop model-driven tools for software modernization projects." license="EPL" groups="//@filters.0" image32="images/modisco.png" incubation="true">
      <sitesURLS>http://download.eclipse.org/releases/juno/</sitesURLS>
      <overview summary="MoDisco provides standard metamodels to describe existing systems, discoverers&#xA;to automaticaly create models from Java and XML source code, and generic tools&#xA;to understand and transform complex models.&#xA;" screenshot="images/modisco-screenshot-320x240.png" url="http://www.eclipse.org/gmt/modisco/"/>
      <id>org.eclipse.gmt.modisco.sdk</id>
      <hiddingFeatureID>org.eclipse.gmt.modisco.infrastructure</hiddingFeatureID>
    </components>
  </categories>
  <categories name="Runtime and Tools" description="Modeling related runtimes and frameworks." relevance="1">
    <components name="Connected Data Objects Repository" provider="Eclipse.org" license="EPL" visible="false">
      <sitesURLS>http://download.eclipse.org/releases/juno/</sitesURLS>
    </components>
    <components name="Agent Modeling Platform" provider="             Eclipse.org  &#xA; &lt;a href=&quot;http://www.eclipse.org/amp/installing/about_discovery.php&quot;>contains non ip-approved content&lt;/a>" description="Agent Modeling Platform (Incubation), including Agent Modeling Framework, Agent eXecution Framework, Agent Graphics and Visualization Framework, and Escape." license="EPL" groups="//@filters.0" image32="images/amp.png" incubation="true">
      <sitesURLS>http://download.eclipse.org/releases/juno/</sitesURLS>
      <sitesURLS>http://lwjgl.org/update</sitesURLS>
      <sitesURLS>http://ascape.sourceforge.net/eclipse</sitesURLS>
      <sitesURLS>http://download.eclipse.org/amp/updates/releases</sitesURLS>
      <sitesURLS>http://mirror.anl.gov/pub/repastsimphony/</sitesURLS>
      <overview summary="The Agent Modeling Platform (AMP) provides extensible frameworks&#xA;and exemplary tools for representing, editing, generating, executing and&#xA;visualizing agent-based models (ABMs) and any other domain requiring spatial,&#xA;behavioral and functional features. AMP has two parts: 1) The Agent Modeling&#xA;Framework (AMF) which provides an Agent-Based Model (ABM) meta-model&#xA;representation, editor, development environment and code generators for popular&#xA;ABM platforms. 2) The AMP platform tools. The Agent Execution Framework (AXF)&#xA;provides services and UI for model management, execution, and views. The Agent&#xA;Graphics Framework (AGF) extends GEF, GEF3D, Zest, and the BIRT charting engine&#xA;to support real-time visualization of and interaction with agent models. Escape&#xA;is a complete ABM environment for Eclipse." screenshot="images/amp-screenshot-320x240.png" url="http://www.eclipse.org/amp"/>
      <id>org.eclipse.amp.all</id>
    </components>
    <components name="Model Workflow Engine" provider="Eclipse.org" license="EPL" groups="//@filters.0" incubation="true" visible="false">
      <sitesURLS>http://download.eclipse.org/releases/juno/</sitesURLS>
    </components>
    <components name="EGF" provider="Eclipse.org" description="The purpose of EGF is to provide an extensible generation framework in order to support complex, large-scale and customizable generations." license="EPL" groups="//@filters.0" image32="images/egf.png">
      <sitesURLS>http://download.eclipse.org/egf/updates/juno/official/</sitesURLS>
      <sitesURLS>http://download.eclipse.org/releases/juno/</sitesURLS>
      <overview summary="In order to improve the software development industrialization, a major step consists in mass-producing software. This mass-production must be customizable, and must be able to support complex, large-scale and heterogeneous generations. Given the today's available Eclipse tools, the issue here is not to provide either a new transformation engine (model-to-model, model-to-text, text-to-model, text-to-text) or DSL (Domain-Specific Language) editor but to realize their integration for flexible software mass-production." screenshot="images/egf-screenshot-320x240.png" url="http://wiki.eclipse.org/EGF"/>
      <id>org.eclipse.egf.sdk</id>
      <hiddingFeatureID>org.eclipse.egf.sdk</hiddingFeatureID>
    </components>
    <components name="EMFStore" provider="Eclipse.org" description="EMFStore is a model repository for EMF-based models/data. It allows storage, versioning, collaboration, offline work and interactive merging. All functions are available via API and via GUI included in the release." license="EPL" groups="//@filters.0" image32="images/emfstore.png" incubation="true">
      <sitesURLS>http://download.eclipse.org/emf-store/releases/latest</sitesURLS>
      <overview summary="EMFStore is a repository for EMF-based models. It features an offline mode and&#xA;is geared towards collaborative editing of the stored models. Therefore support&#xA;for conflict detection and interactive merging of models is built into the&#xA;repository including versioning. EMFStore also ships with a set of client&#xA;plugins containing an API for the server and even views for commiting changes&#xA;to, updating changes from the repository as well as merging models in a local&#xA;workspace. In addition EMFStore provides access control on the repository and&#xA;storage for the models and their meta data on client and server side. EMFStore&#xA;also supports changing the Ecore model of the stored EMF model instances by&#xA;generating model migrators based on Edapt. This is a useful feature if your&#xA;application evolves and requires changing your data model for example.&#xA;&#xA;Feature Overview:&#xA;- Offline Mode (No server connection neccessary)&#xA;- Interactive Merging&#xA;- Extensible Model Conflict Detection and Merging&#xA;- Model Versioning with full history&#xA;- Model Storage (client and server-side)&#xA;- Access Control&#xA;- Model Migration" screenshot="images/emfstore-screenshot-320x240.png" url="http://emfstore.org"/>
      <id>org.eclipse.emf.emfstore.ecp.feature</id>
    </components>
    <components name="Teneo" provider="Eclipse.org" description="Teneo is a Model-Relational mapping and runtime database persistence solution for the Eclipse Modeling Framework (EMF) using Hibernate and EclipseLink." license="EPL">
      <sitesURLS>http://download.eclipse.org/releases/juno/</sitesURLS>
      <overview summary="The EMF &#x2013; Hibernate integration supports all EMF features and standard EclipseLink and Hibernate features. EMF objects can be persisted in most major relational databases and retrieved using an EMF resource approach or HQL/JPA queries. A distinctive feature of Teneo is that you can override/extend the Model-Relational mapping using JPA annotations in the model." screenshot="images/teneo-screenshot-320x240.png" url="http://wiki.eclipse.org/Teneo"/>
      <id>org.eclipse.emf.teneo.hibernate</id>
      <id>org.eclipse.emf.teneo.eclipselink</id>
    </components>
    <components name="OCL Tools" provider="Eclipse.org" description="An evaluation Console for OCL expressions, and Xtext Editors for Complete OCL documents, Combined OCL in Ecore Models and for individual OCL expressions" license="EPL" image32="images/ocl.png">
      <sitesURLS>http://download.eclipse.org/releases/juno/</sitesURLS>
      <overview summary="The Examples for the Object Constraint Language provide&#xA;&#xA;Xtext Editors for&#xA;- CompleteOCL documents to enhance Ecore or UML models&#xA;- OCL in Ecore documents defining OCL and Ecore at once&#xA;- Individual Expressions for use by other tools&#xA;- the OCL Standard Library" screenshot="images/ocl-screenshot-320x240.png" url="http://www.eclipse.org/projects/project_summary.php?projectid=modeling.mdt.ocl"/>
      <id>org.eclipse.ocl.examples</id>
    </components>
  </categories>
  <filters name="Incubation"/>
</discovery:DiscoveryDefinition>
