<html><head>
      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
   <title>Appendix&nbsp;A.&nbsp;Further Resources</title><link rel="stylesheet" href="css/stylesheet.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.74.0"><link rel="home" href="index.html" title="A Guide to the GreenPages Sample"><link rel="up" href="index.html" title="A Guide to the GreenPages Sample"><link rel="prev" href="ch03s04.html" title="3.4&nbsp;Automated Build Highlights"><link rel="next" href="apas02.html" title="A.2&nbsp;Documentation"><!--Begin Google Analytics code--><script type="text/javascript">
			var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
			document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
		</script><script type="text/javascript">
			var pageTracker = _gat._getTracker("UA-2728886-3");
			pageTracker._setDomainName("none");
			pageTracker._setAllowLinker(true);
			pageTracker._trackPageview();
		</script><!--End Google Analytics code--></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Appendix&nbsp;A.&nbsp;Further Resources</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch03s04.html">Prev</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="apas02.html">Next</a></td></tr></table><hr></div><div class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="further.resources"></a>Appendix&nbsp;A.&nbsp;Further Resources</h2></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="further.resources.projects"></a>A.1&nbsp;Projects</h2></div></div></div><div class="orderedlist"><ol type="a"><li><p>Virgo
	        (<a class="ulink" href="http://www.eclipse.org/virgo" target="_top">http://www.eclipse.org/virgo</a>) &#8212; homepage for Virgo.</p></li><li><p>Bundlor
	        (<a class="ulink" href="http://www.springsource.org/bundlor" target="_top">http://www.springsource.org/bundlor</a>) &#8212; homepage for Bundlor manifest generation tool.
					Note that Bundlor has been donated to Eclipse and may a development milestone be downloaded from
					<a class="ulink" href="http://www.eclipse.org/virgo/download" target="_top">http://www.eclipse.org/virgo/download</a>.
				</p></li><li><p>SpringSource.org
        (<a class="ulink" href="http://www.springsource.org" target="_top">http://www.springsource.org</a>) &#8212; homepage for Spring Framework.</p></li><li><p>OSGi
        (<a class="ulink" href="http://www.osgi.org" target="_top">http://www.osgi.org</a>) &#8212; homepage for OSGi.</p></li><li><p>H2 Database
        (<a class="ulink" href="http://www.h2database.com" target="_top">http://www.h2database.com</a> &#8212; homepage for the H2 database.</p></li><li><p>FreeMarker
        (<a class="ulink" href="http://freemarker.sourceforge.net" target="_top">http://freemarker.sourceforge.net</a>) &#8212; homepage for FreeMarker templating
        engine.</p></li><li><p>Commons DBCP
        (<a class="ulink" href="http://commons.apache.org/dbcp" target="_top">http://commons.apache.org/dbcp</a>) &#8212; homepage for Commons DBCP.</p></li><li><p>Eclipse IDE
        (<a class="ulink" href="http://www.eclipse.org/eclipse" target="_top">http://www.eclipse.org/eclipse</a>) &#8212; homepage for Eclipse IDE.</p></li><li><p>EclipseLink
        (<a class="ulink" href="http://www.eclipse.org/eclipselink" target="_top">http://www.eclipse.org/eclipselink</a>) &#8212; homepage for EclipseLink JPA.</p></li></ol></div></div></div><!--Begin LoopFuse code--><script src="http://loopfuse.net/webrecorder/js/listen.js" type="text/javascript"></script><script type="text/javascript">
			_lf_cid = "LF_48be82fa";
			_lf_remora();
		</script><!--End LoopFuse code--><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch03s04.html">Prev</a>&nbsp;</td><td width="20%" align="center">&nbsp;</td><td width="40%" align="right">&nbsp;<a accesskey="n" href="apas02.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">3.4&nbsp;Automated Build Highlights&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">&nbsp;A.2&nbsp;Documentation</td></tr></table></div></body></html>