<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!-- saved from url=(0047)http://www.eclipse.org/legal/epl/longabout.html -->
<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>13 December 2012</P>	
<H3>License</H3>

<P>The Eclipse Foundation makes available all content in this plug-in ("Content").  Unless otherwise 
indicated below, the Content is provided to you under the terms and conditions of the
Eclipse Public License Version 1.0 ("EPL").  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, "Program" 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 ("Redistributor") 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's license for 
		terms and conditions of use.</P>
		
		<h4>
			<a href="about_files/apache-v20.txt">Apache License 2.0</a>
		</h4>
		This product contains software developed by the Apache Software Foundation (<a href="http://www.apache.org">http://www.apache.org</a>).
		<ul>
			<li>
				Apache Commons FileUpload 1.2.0 - binary and source are available from the <a href="http://commons.apache.org/fileupload/">Apache Commons FileUpload project</a>
			</li>
			<li>
				Apache Commons IO 1.4.0 - binary and source are available from the <a href="http://commons.apache.org/io/">Apache Commons IO project</a>
			</li>
			<li>
				Apache Felix Gogo 0.10.0 - binary and source is available from the <a href="http://felix.apache.org">Apache Felix project</a>
			</li>
			<li>
				Apache MINA Core 2.0.2 - binary and source is available from the <a href="http://mina.apache.org/">Apache MINA project</a>
			</li>
			<li>
				Apache MINA SSHD Core 0.5.0 - binary and source is available from the <a href="http://mina.apache.org/">Apache MINA project</a>
			</li>
			<li>
				javax.transaction 1.1.1 - binary and source are available from the <a href="http://geronimo.apache.org/">Apache Geronimo project</a>
			</li>
			<li>
				Jolokia OSGi 1.0.2 - binary and source are available from the <a href="http://www.jolokia.org/">Jolokia project</a>
			</li>
			<li>
				OSGi Enterprise 4.2 - binary and source are available from the <a href="https://www.osgi.org/members/Release42/HomePage">OSGi Alliance</a>
			</li>
		</ul>
		<h4>
			<a href="about_files/LICENSE-AspectJ.html">AspectJ License</a>
		</h4>
		<ul>
			<li>
				AspectJ Weaver 1.6.12 - binary and source is available from the <a href="http://eclipse.org/aspectj">AspectJ project</a>
			</li>
		</ul>
		<h4>
			<a href="about_files/cddl-10.txt">Common Development and Distribution License 1.0</a>
		</h4>
		<ul>
			<li>
				javax.annotation 1.1.0 - binary and source is available from the
				<a href="http://glassfish.java.net/">GlassFish Project</a> (Dual-licensed CDDL 1.0 or GPL 2. Virgo elects to use CDDL 1.0.)
			</li>
		</ul>

		<h4>
			<a href="epl-v10.html">Eclipse Public License 1.0</a>
		</h4>
		<ul>
			<li>
				Logback 1.0.7 - binary and source is available from the
				<a href="http://logback.qos.ch/">Logback project</a> (Dual-licensed EPL or LGPL. Virgo elects to use EPL.)
			</li>
		</ul>
		<h4>
			<a href="about_files/slf4j.txt">SLF4J License</a>
		</h4>
		<ul>
			<li>
				Simple Logging Facade for Java (SLF4J) 1.7.2 - binary and source is available from the
				<a href="http://www.slf4j.org/">SLF4J Project</a>
			</li>
		</ul>

</BODY></HTML>