<!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 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</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-war-plugin 2.1.1</h4>
<p>
This software contains the maven-war-plugin-2.1.1.jar from the Apache Maven project.</p>
<p>
Your use of maven-war-plugin 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>

<h4>maven-ear-plugin 2.6 (Derivative work)</h4>
<p>
This software contains the following classes, derived from the maven-ear-plugin-2.6.jar from the Apache Maven project.
 <ul>
<li>org.eclipse.m2e.wtp.earmodules.AbstractEarModule derived from  org.apache.maven.plugin.ear.AbstractEarModule 
</li><li>org.eclipse.m2e.wtp.namemapping.StandardFileNameMapping derived from org.apache.maven.plugin.ear.output.StandardFileNameMapping 
</li><li>org.eclipse.m2e.wtp.earmodules.AppClientModule derived from org.apache.maven.plugin.ear.AppClientModule
</li><li>org.eclipse.m2e.wtp.earmodules.ArtifactRepository derived from org.apache.maven.plugin.ear.util.ArtifactRepository
</li><li>org.eclipse.m2e.wtp.earmodules.ArtifactTypeMappingService derived from org.apache.maven.plugin.ear.util.ArtifactTypeMappingService
</li><li>org.eclipse.m2e.wtp.earmodules.EarModule derived from org.apache.maven.plugin.ear.EarModule
</li><li>org.eclipse.m2e.wtp.earmodules.EarModuleFactory derived from org.apache.maven.plugin.ear.EarModuleFactory
</li><li>org.eclipse.m2e.wtp.earmodules.EarPluginException derived from org.apache.maven.plugin.ear.EarPluginException
</li><li>org.eclipse.m2e.wtp.earmodules.EjbClientModule derived from org.apache.maven.plugin.ear.EjbClientModule
</li><li>org.eclipse.m2e.wtp.earmodules.EjbModule derived from org.apache.maven.plugin.ear.EjbModule
</li><li>org.eclipse.m2e.wtp.earmodules.HarModule derived from org.apache.maven.plugin.ear.HarModule
</li><li>org.eclipse.m2e.wtp.earmodules.JarModule derived from org.apache.maven.plugin.ear.JarModule
</li><li>org.eclipse.m2e.wtp.earmodules.JbossEarModule derived from org.apache.maven.plugin.ear.JbossEarModule 
</li><li>org.eclipse.m2e.wtp.earmodules.ParModule derived from org.apache.maven.plugin.ear.ParModule
</li><li>org.eclipse.m2e.wtp.earmodules.RarModule derived from org.apache.maven.plugin.ear.RarModule
</li><li>org.eclipse.m2e.wtp.earmodules.SarModule derived from org.apache.maven.plugin.ear.SarModule
</li><li>org.eclipse.m2e.wtp.earmodules.SecurityRoleKey derived from  org.apache.maven.plugin.ear.SecurityRole
</li><li>org.eclipse.m2e.wtp.earmodules.UnknownArtifactTypeException derived from org.apache.maven.plugin.ear.UnknownArtifactTypeException
</li><li>org.eclipse.m2e.wtp.earmodules.WebModule derived from  org.apache.maven.plugin.ear.WebModule
</li><li>org.eclipse.m2e.wtp.earmodules.WsrModule derived from  org.apache.maven.plugin.ear.WsrModule
</li><li>org.eclipse.m2e.wtp.namemapping.AbstractFileNameMapping derived from  org.apache.maven.plugin.ear.output.AbstractFileNameMapping 
</li><li>org.eclipse.m2e.wtp.namemapping.FileNameMapping derived from org.apache.maven.plugin.ear.output.FileNameMapping 
</li><li>org.eclipse.m2e.wtp.namemapping.FileNameMappingFactory derived from  org.apache.maven.plugin.ear.output.FileNameMapping 
</li><li>org.eclipse.m2e.wtp.namemapping.FullFileNameMapping derived from org.apache.maven.plugin.ear.output.FullFileNameMapping 
</li><li>org.eclipse.m2e.wtp.namemapping.NoVersionFileNameMapping derived from org.apache.maven.plugin.ear.output.NoVersionFileNameMapping 
</li>
 
 </ul>
 </p>
<p>
Your use of maven-ear-plugin 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>


<h4>Spring Core (Derivative work)</h4>
<p>
This software is based in part on the work of The SpringSource on the Spring Core project.</p>
<p>The org.eclipse.m2e.wtp.internal.AntPathMatcher class is copied from the following class from the Spring Core project :</p>
<ul>
<li>org.springframework.util.AntPathMatcher</li>
</ul>
<p>
Your use of Spring 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>
