<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <!-- Package Description information to be picked up by www.eclipse.org/packages -->
  <!-- PackageName is the title of your package 
       maintainer is the project or persons that are maintaining the package
       iconurl is the fully qualified URL to the icon you wish to use on the site (48x48)
       bugzillaComponentID is used to gather bugzilla information about your package.  This should be given to you after provisioning of the package is finished
       testPlan is the fully qualified URL to the test plan for this package
   -->
  <packageMetaData
   packageName="Eclipse Modeling Tools"
   maintainer="Modeling Amalgamation Project"
   iconurl="http://www.eclipse.org/modeling/images/modeling_about.png"
   bugzillaComponentId="modeling-package"
   testPlan="http://www.eclipse.org/epp/testplan.php" >
    <!-- Description is wrapped in CDATA tags to allow you to insert HTML code if necessary -->
    <description><![CDATA[The Modeling package provides tools and runtimes for building model-based applications.
        You can use it to graphically design domain models,to leverage those models at design time by creating and editing dynamic instances, to collaborate via Eclipse's team support with facilities for comparing and merging models and model instances structurally, and finally to generate Java code from those models to produce complete applications.
        In addition, via the package's discover catalog, you can easily install a wide range of additional powerful, model-based tools and runtimes to suit your specific needs.]]></description>
    <!-- packageTesters is a list of the people that are testing the package -->
     <packageTesters>
      <tester>Cédric Brun</tester>
    </packageTesters>
  </packageMetaData>
  <MoreInfo>
  <NewAndNoteworthy
      url="http://projects.eclipse.org/projects/modeling.emft.ecoretools/releases/1.2.0"
   project="EcoreTools" />
  <NewAndNoteworthy
      url="http://wiki.eclipse.org/EMF_Compare/ReleaseReview/Luna#New_and_noteworthy"
    project="EMF Compare" />
  <NewAndNoteworthy
      url="http://projects.eclipse.org/projects/modeling.mmt.atl/releases/3.4.0"
    project="ATL" />
  </MoreInfo>

  <!-- version, the RCP version to build. This is used to determine the file 
    name of the root file archives -->
  <rcp version="4.3.0" />

  <!-- name, the name of the product, used in naming the created files. -->
  <product name="eclipse-modeling-luna-M5" />

</configuration>
