<?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 IDE for Java Developers"
   maintainer="Eclipse Packaging Project"
   iconurl="http://www.eclipse.org/downloads/images/java.png"
   bugzillaComponentId="java-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 essential tools for any Java developer, including a Java IDE, a Git client, XML Editor, Maven and Gradle integration]]></description>
    <!-- packageTesters is a list of the people that are testing the package -->
     <packageTesters>
      <tester>Aleksandar Kurtakov</tester>
    </packageTesters>
  </packageMetaData>
  <MoreInfo>
  <NewAndNoteworthy
    url="https://www.eclipse.org/eclipse/news/4.19/"
    project="Eclipse Platform" />
  <NewAndNoteworthy
    url="https://wiki.eclipse.org/EGit/New_and_Noteworthy/5.11"
    project="Eclipse EGit" />
  </MoreInfo>


	<!-- name, the name of the product, used in naming the created files. -->
	<product name="eclipse-java-2021-03-R" />

</configuration>
