<html><head>
      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
   <title>2.&nbsp;Installing and Running GreenPages</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="ch01s04.html" title="1.4&nbsp;Installing Apache Maven"><link rel="next" href="ch02s02.html" title="2.2&nbsp;Obtaining GreenPages"><!--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">2.&nbsp;Installing and Running GreenPages</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch01s04.html">Prev</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="ch02s02.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="installing.greenpages"></a>2.&nbsp;Installing and Running GreenPages</h2></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="installing.greenpages.introduction"></a>2.1&nbsp;Introduction</h2></div></div></div><p>GreenPages is a simple application that allows users to search an online email address directory. Each listing
    in the directory details the relevant email addresses and the name of the owner. GreenPages has only three screens:
    the search screen, the results screen and the listing detail screen.</p><p>In the search screen, users can enter search criteria to be matched against the listings in the directory.
    The result screen displays any listings that match the criteria entered by the user. The listing detail screen
    shows all the data known about a given listing.</p><p>Despite its simplicity, GreenPages is designed to demonstrate many different Virgo Tomcat Server features and to
    act as a template from which other modular applications can be built. In particular, GreenPages demonstrates: 
    </p><div class="itemizedlist"><ul type="bullet"><li style="list-style-type: disc"><p>bundle dependencies with <code class="literal">Import-Package</code>,</p></li><li style="list-style-type: disc"><p>load-time weaving with JPA and AspectJ,</p></li><li style="list-style-type: disc"><p>bundle classpath scanning, and</p></li><li style="list-style-type: disc"><p>service export, lookup and injection.</p></li></ul></div><p>In addition to demonstrating common Virgo Tomcat Server features, GreenPages demonstrates integration with:
    </p><div class="itemizedlist"><ul type="bullet"><li style="list-style-type: disc"><p>Spring Framework 3.0;</p></li><li style="list-style-type: disc"><p>FreeMarker 2.3;</p></li><li style="list-style-type: disc"><p>EclipseLink 1.0.0;</p></li><li style="list-style-type: disc"><p>H2 1.0.71; and</p></li><li style="list-style-type: disc"><p>Commons DBCP 1.2.2.</p></li></ul></div><p>
    </p><p>The GreenPages application is packaged as a PAR file containing four bundles.
       </p><div class="mediaobject" align="center"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="461"><tr><td align="center"><img src="images/installing-greenpages/greenpages.png" align="middle" width="461"></td></tr></table></div><p>
    </p><p>
        The <code class="literal">greenpages.db</code> bundle provides access to an external database and publishes a
		<code class="literal">javax.sql.DataSource</code> service.
    </p><p>
		The <code class="literal">greenpages.app</code> bundle exports a <code class="literal">greenpages</code> package containing
		<code class="literal">Directory</code> and <code class="literal">Listing</code> interfaces.
    </p><p>
		The <code class="literal">greenpages.jpa</code> bundle imports the <code class="literal">greenpages</code> package and
		uses the <code class="literal">javax.sql.DataSource</code> service to
		access the external database and publishes its contents as a <code class="literal">greenpages.Directory</code> service.
    </p><p>
		The <code class="literal">greenpages.web</code> web application bundle imports the <code class="literal">greenpages</code> package and uses the
		<code class="literal">greenpages.Directory</code> service to respond to web requests.
    </p></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="ch01s04.html">Prev</a>&nbsp;</td><td width="20%" align="center">&nbsp;</td><td width="40%" align="right">&nbsp;<a accesskey="n" href="ch02s02.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">1.4&nbsp;Installing Apache Maven&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">&nbsp;2.2&nbsp;Obtaining GreenPages</td></tr></table></div></body></html>