<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
<title>About</title>
</head>
<body lang="EN-US">
<h2>About This Content</h2>
 
<p>October 29, 2010</p>	
	<h3>License</h3>

	<p>
		The Eclipse Foundation makes available all content in this plug-in
		(&quot;Content&quot;). Unless otherwise indicated below, the Content
		is provided to you under the terms and conditions of the Eclipse
		Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
		available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
		For purposes of the EPL, &quot;Program&quot; will mean the Content.
	</p>

	<p>
		If you did not receive this Content directly from the Eclipse
		Foundation, the Content is being redistributed by another party
		(&quot;Redistributor&quot;) and different terms and conditions may
		apply to your use of any object code in the Content. Check the
		Redistributor's license that was provided with the Content. If no such
		license exists, contact the Redistributor. Unless otherwise indicated
		below, the terms and conditions of the EPL still apply to any source
		code in the Content and such source code may be obtained at <a
			href="http://www.eclipse.org/">http://www.eclipse.org</a>.
	</p>

<h3>Third Party Content</h3>

<p>
The Content includes items that have been sourced from third parties as set out below. If you 
did not receive this Content directly from the Eclipse Foundation, the following is provided 
for informational purposes only, and you should look to the Redistributor&rsquo;s license for 
terms and conditions of use.
</p>

<h4>Maven Core 3.0.4 (Derivative work)</h4>
<p>
This software is based in part on the work of The Apache Software Foundation on the Maven Core project.</p>
<p>The class org.eclipse.m2e.core.internal.project.conversion.ProjectConversionParticipantSorter is based on the following class from Maven Core :</p>
<ul>
<li>org.apache.maven.project.ProjectSorter</li>
</ul>
<p>
Your use of Maven Core in source or binary code form is subject to the terms and conditions of the 
The Apache Software License, Version 2.0 (&quot;ASL&quot;).  
A copy of the ASL is available at <a href="http://maven.apache.org/license.html">http://maven.apache.org/license.html</a>.
(a local copy can be found <a href="about_files/LICENSE-2.0.txt">here</a>)
</p>
</body>
</html>
