<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>jetty &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://en.wordpress.com/tag/jetty/</link>
	<description>Feed of posts on WordPress.com tagged "jetty"</description>
	<pubDate>Mon, 28 Dec 2009 18:47:55 +0000</pubDate>

	<generator>http://en.wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[Travel - PJ-Ipoh-Perlis-Langkawi-Penang]]></title>
<link>http://tekan.wordpress.com/2009/12/23/travel-pj-ipoh-perlis-langkawi-penang/</link>
<pubDate>Wed, 23 Dec 2009 11:39:15 +0000</pubDate>
<dc:creator>hcyeong</dc:creator>
<guid>http://tekan.wordpress.com/2009/12/23/travel-pj-ipoh-perlis-langkawi-penang/</guid>
<description><![CDATA[]]></description>
<content:encoded><![CDATA[<div class='snap_preview'>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Swim Before The Storm]]></title>
<link>http://memartine.wordpress.com/2009/12/22/swim-before-the-storm/</link>
<pubDate>Tue, 22 Dec 2009 07:11:43 +0000</pubDate>
<dc:creator>memartine</dc:creator>
<guid>http://memartine.wordpress.com/2009/12/22/swim-before-the-storm/</guid>
<description><![CDATA[Clouds come floating into my life, no longer to carry rain or usher storm, but to add color to my su]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><img src="http://memartine.wordpress.com/files/2009/12/imgp16582.jpg" alt="" title="Storm Swimmers" width="700" height="467" class="aligncenter size-full wp-image-262" /></p>
<blockquote><p>Clouds come floating into my life, no longer to carry rain or usher storm, but to add color to my sunset sky.<br />
~ Rabindranath Tagore</p></blockquote>
<p>I was at the base all afternoon and as it was quiet I was watching the kids swimming from the jetty. Later in the afternoon a storm front came our way.</p>
<p><em>About the photo:</em>I was really hoping I would be able to capture the awesome colour of the lake today, and I think I did. I used aperture priority mode and set it to f11 for this shot.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Manually installing a recent version of Jetty as a service in Linux]]></title>
<link>http://jawher.wordpress.com/2009/12/18/manually-installing-a-recent-version-of-jetty-as-a-service-in-linux/</link>
<pubDate>Fri, 18 Dec 2009 04:44:55 +0000</pubDate>
<dc:creator>jawher</dc:creator>
<guid>http://jawher.wordpress.com/2009/12/18/manually-installing-a-recent-version-of-jetty-as-a-service-in-linux/</guid>
<description><![CDATA[While Jetty is available in most of the distributions packages managers, the included versions are r]]></description>
<content:encoded><![CDATA[While Jetty is available in most of the distributions packages managers, the included versions are r]]></content:encoded>
</item>
<item>
<title><![CDATA[Jetty to Nowhere...!]]></title>
<link>http://ddreamz.wordpress.com/2009/12/17/jetty-to-nowhere/</link>
<pubDate>Thu, 17 Dec 2009 18:21:32 +0000</pubDate>
<dc:creator>ddreamz</dc:creator>
<guid>http://ddreamz.wordpress.com/2009/12/17/jetty-to-nowhere/</guid>
<description><![CDATA[Jetty to Nowhere It seemed to be a journey of a lifetime&#8230; But I was  fearful of the unknown; I]]></description>
<content:encoded><![CDATA[Jetty to Nowhere It seemed to be a journey of a lifetime&#8230; But I was  fearful of the unknown; I]]></content:encoded>
</item>
<item>
<title><![CDATA[O Application Servers, Where Art Thou?]]></title>
<link>http://agoncal.wordpress.com/2009/12/12/o-application-servers-where-art-thou/</link>
<pubDate>Sat, 12 Dec 2009 15:33:43 +0000</pubDate>
<dc:creator>agoncal</dc:creator>
<guid>http://agoncal.wordpress.com/2009/12/12/o-application-servers-where-art-thou/</guid>
<description><![CDATA[With Java EE 6 and GlassFish v3 out, it is time to take a little break and look at the application s]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>With <a href="http://jcp.org/en/jsr/summary?id=316">Java EE 6</a> and <a href="https://glassfish.dev.java.net/">GlassFish v3</a> out, it is time to take a little break and look at the application server world. J2EE 1.2 was created in 1999, that&#8217;s 10 years ago. The application server market at the time was completely different of the one today. There was Weblogic and Websphere, other proprietary application servers (not following J2EE) and no open source application server. Today, it is a completely different story.</p>
<p>The application servers&#8217; world has changed so much in the last 10 years, but people still have in mind the heavyweight server that takes huge amount of RAM, disk space and takes ages to start (being completely useless for agile developers who need to test and code quickly and often). So let&#8217;s focus on some application servers  (Geronimo, GlassFish, JBoss, Jetty, JOnAS, Resin, Tomcat, Weblogic and Webspere) and check some parameters.</p>
<h2>The benchmark</h2>
<p><em>Disclaimer :This is not a real benchmark !</em></p>
<p>In this little test I&#8217;m just concerned about the usability of an application server for a developer. The idea is to download it, install it, start it and take some measurements (size of download, ease of installation, size of disk, startup time, size of RAM&#8230;). That&#8217;s all. No deployment of an application, no fancy twists to gain performance&#8230;. Because some of these application servers are resource consuming, I&#8217;m doing all my tests on a Windows XP virtual machine (running on <a href="http://www.virtualbox.org/">Virtual Box</a> 3.1). It is a fresh install of Windows XP sp3 with 1Gb of RAM and not too many software installed (I had to install <a href="http://www.avast.com">Avast</a> but). So when I boot there are 27 processes running and using 230 Mb of RAM (leaving 770 Mb free). Virtualizing can be slower, so keep in mind that startup time can be a bit faster that what I&#8217;m giving you here. I use <a href="http://java.sun.com/javase/">JDK 1.6.0_17</a> (when it&#8217;s not bundled with the server). No optimization at all is made (I haven&#8217;t twisted the JVM, or antyhing application server parameter, everything comes out of the box).</p>
<p>To calculate the <strong>startup time</strong>, I don&#8217;t do any fancy rocket science either. I just start the server a few times, check how long it takes and use the best startup time. Also remember that some servers do not load any container at startup, making them very fast to start. Others load everything (making them slower). Again, I have to point out that I&#8217;m not deploying an application, so it&#8217;s really starting up the server from a fresh install. To calculate the <strong>memory footprint</strong>, I just use the Windows task manager and check the size of the java.exe process.</p>
<p><em>Disclaimer bis : </em>Some of these servers were completely unknown for me, so I might not have been completely accurate. Feel free to leave a comment.</p>
<p><em>Disclaimer Ter</em> : And again, this is not a real benchmark, so don&#8217;t use it to sale any product to your customer ;o) I just wanted to give an overview of most application servers and some numbers.</p>
<h2>Geronimo</h2>
<p><a href="http://geronimo.apache.org/">Geronimo</a> is the Apache Java EE 5 application server.</p>
<h3>Geronimo 2.x</h3>
<p>Geronimo 2.x comes with two flavours : one bundle with Jetty, the other one with Tomcat (the one I&#8217;ve picked up).</p>
<table border="1">
<tbody>
<tr>
<td>Version</td>
<td>2.1.4</td>
</tr>
<tr>
<td>What do you get ?</td>
<td>Java EE 5</td>
</tr>
<tr>
<td>Who is behind?</td>
<td><a href="http://www.apache.org/">Apache</a></td>
</tr>
<tr>
<td>Open source?</td>
<td>ASL</td>
</tr>
<tr>
<td>Documentation</td>
<td><a href="http://cwiki.apache.org/GMOxDOC21/">Documentation</a></td>
</tr>
<tr>
<td>Download</td>
<td><a href="http://mirror.mkhelif.fr/apache/geronimo/2.1.4/geronimo-tomcat6-javaee5-2.1.4-bin.zip">Zip file</a></td>
</tr>
<tr>
<td>Size of the downloaded file</td>
<td>73.5 Mb</td>
</tr>
<tr>
<td>Installation mode</td>
<td>Unzip</td>
</tr>
<tr>
<td>Size once installed on drive</td>
<td>101 Mb</td>
</tr>
<tr>
<td>How to start it</td>
<td>Execute %GERONIMO_HOME%\bin\geronimo start</td>
</tr>
<tr>
<td>Location of log files</td>
<td>%GERONIMO_HOME%\var\logs</td>
</tr>
<tr>
<td>Best startup time</td>
<td>17.6 s</td>
</tr>
<tr>
<td>Size of the process in RAM at startup</td>
<td>118.8 Mb</td>
</tr>
<tr>
<td>Welcome page</td>
<td>http://localhost:8080/</td>
</tr>
<tr>
<td>Admin console</td>
<td>http://localhost:8080/console/portal/Welcome (*)</td>
</tr>
</tbody>
</table>
<p>(*) user : system / pwd : manager</p>
<h2>GlassFish</h2>
<p><a href="https://glassfish.dev.java.net">GlassFish</a> is the open source reference implementation of the last Java EE specifications.</p>
<h3>GlassFish 2.x</h3>
<p>GlassFish v2 is the reference implementation of Java EE 5.</p>
<table border="1">
<tbody>
<tr>
<td>Version</td>
<td>2.1.1-b31g</td>
</tr>
<tr>
<td>What do you get ?</td>
<td>Java EE 5</td>
</tr>
<tr>
<td>Who is behind?</td>
<td><a href="http://www.sun.com">Sun</a></td>
</tr>
<tr>
<td>Open source?</td>
<td>Dual license CDDL and GPL</td>
</tr>
<tr>
<td>Documentation</td>
<td><a href="http://docs.sun.com/app/docs/coll/1343.11">Documentation</a></td>
</tr>
<tr>
<td>Download</td>
<td><a href="http://java.net/download/javaee5/v2.1.1_branch/promoted/WINNT/glassfish-installer-v2.1.1-b31g-windows.jar">Jar file</a></td>
</tr>
<tr>
<td>Size of the downloaded file</td>
<td>62.9 Mb</td>
</tr>
<tr>
<td>Installation mode</td>
<td>First java -Xmx256m -jar filename.jar and then ant -f setup.xml</td>
</tr>
<tr>
<td>Size once installed on drive</td>
<td>128 Mb</td>
</tr>
<tr>
<td>How to start it</td>
<td>Execute %GLASSFISH_HOME%\bin\asadmin start-domain</td>
</tr>
<tr>
<td>Location of log files</td>
<td>%GLASSFISH_HOME%\domains\domain1\logs</td>
</tr>
<tr>
<td>Best startup time</td>
<td>12 s</td>
</tr>
<tr>
<td>Size of the process in RAM at startup</td>
<td>96.3 Mb</td>
</tr>
<tr>
<td>Welcome page</td>
<td>http://localhost:8080/</td>
</tr>
<tr>
<td>Admin console</td>
<td>http://localhost:4848</td>
</tr>
</tbody>
</table>
<h3>GlassFish 3.x</h3>
<p>GlassFish v3 is the reference implementation of Java EE 6.</p>
<table border="1">
<tbody>
<tr>
<td>Version</td>
<td>3.0</td>
</tr>
<tr>
<td>What do you get ?</td>
<td>Java EE 6</td>
</tr>
<tr>
<td>Who is behind?</td>
<td><a href="http://www.sun.com">Sun</a></td>
</tr>
<tr>
<td>Open source?</td>
<td>Dual license CDDL and GPL</td>
</tr>
<tr>
<td>Documentation</td>
<td><a href="http://docs.sun.com/app/docs/coll/1343.9">Documentation</a></td>
</tr>
<tr>
<td>Download</td>
<td><a href="http://download.java.net/glassfish/v3/release/glassfish-v3.zip">Zipfile</a></td>
</tr>
<tr>
<td>Size of the downloaded file</td>
<td>73.6 Mb</td>
</tr>
<tr>
<td>Installation mode</td>
<td>Unzip</td>
</tr>
<tr>
<td>Size once installed on drive</td>
<td>90.4 Mb</td>
</tr>
<tr>
<td>How to start it</td>
<td>Execute %GLASSFISH_HOME%\bin\asadmin start-domain</td>
</tr>
<tr>
<td>Location of log files</td>
<td>%GLASSFISH_HOME%\domains\domain1\logs</td>
</tr>
<tr>
<td>Best startup time</td>
<td>5.6 s</td>
</tr>
<tr>
<td>Size of the process in RAM at startup</td>
<td>76.2 Mb</td>
</tr>
<tr>
<td>Welcome page</td>
<td>http://localhost:8080/</td>
</tr>
<tr>
<td>Admin console</td>
<td>http://localhost:4848</td>
</tr>
</tbody>
</table>
<h2>JBoss</h2>
<p><a href="www.jboss.org">JBoss</a> is the RedHat open source application server.</p>
<h3>JBoss 5.x</h3>
<p>JBoss 5 is a Java EE 5 application server</p>
<table border="1">
<tbody>
<tr>
<td>Version</td>
<td>5.1.0-GA-jdk6</td>
</tr>
<tr>
<td>What do you get ?</td>
<td>Java EE 5</td>
</tr>
<tr>
<td>Who is behind?</td>
<td><a href="http://www.jboss.org">JBoss/RedHat</a></td>
</tr>
<tr>
<td>Open source?</td>
<td></td>
</tr>
<tr>
<td>Documentation</td>
<td><a href="http://www.jboss.org">Documentation</a></td>
</tr>
<tr>
<td>Download</td>
<td><a href="http://sourceforge.net/projects/jboss/files/JBoss/JBoss-5.1.0.GA/jboss-5.1.0.GA-jdk6.zip/download">Zip file</a></td>
</tr>
<tr>
<td>Size of the downloaded file</td>
<td>127 Mb</td>
</tr>
<tr>
<td>Installation mode</td>
<td>Unzip</td>
</tr>
<tr>
<td>Size once installed on drive</td>
<td>151 Mb</td>
</tr>
<tr>
<td>How to start it</td>
<td>Execute %JBOSS_HOME%\bin\run (*)</td>
</tr>
<tr>
<td>Location of log files</td>
<td>%JBOSS_HOME%\server\default\log</td>
</tr>
<tr>
<td>Best startup time</td>
<td>1m 17 s</td>
</tr>
<tr>
<td>Size of the process in RAM at startup</td>
<td>242.7 Mb</td>
</tr>
<tr>
<td>Welcome page</td>
<td>http://localhost:8080/</td>
</tr>
<tr>
<td>JMX console</td>
<td>http://localhost:8080/jmx-console/</td>
</tr>
</tbody>
</table>
<p>(*) That&#8217;s using the default domain</p>
<h3>JBoss 6.x</h3>
<p>JBoss is still a work in progress. It will eventually implement Java EE 6.</p>
<table border="1">
<tbody>
<tr>
<td>Version</td>
<td>6.0.0-M1</td>
</tr>
<tr>
<td>What do you get ?</td>
<td>Java EE 6</td>
</tr>
<tr>
<td>Who is behind?</td>
<td><a href="http://www.jboss.org">JBoss/RedHat</a></td>
</tr>
<tr>
<td>Open source?</td>
<td>Dual license CDDL and GPL</td>
</tr>
<tr>
<td>Documentation</td>
<td><a href="www.jboss.org">Documentation</a></td>
</tr>
<tr>
<td>Download</td>
<td><a href="http://sourceforge.net/projects/jboss/files/JBoss/JBoss-6.0.0.M1/jboss-6.0.0.M1.zip/download">Zipfile</a></td>
</tr>
<tr>
<td>Size of the downloaded file</td>
<td>154 Mb</td>
</tr>
<tr>
<td>Installation mode</td>
<td>Unzip</td>
</tr>
<tr>
<td>Size once installed on drive</td>
<td>180 Mb</td>
</tr>
<tr>
<td>How to start it</td>
<td>Execute %JBOSS_HOME%\bin\run</td>
</tr>
<tr>
<td>Location of log files</td>
<td>%JBOSS_HOME%\server\default\log</td>
</tr>
<tr>
<td>Best startup time</td>
<td>59.7 s</td>
</tr>
<tr>
<td>Size of the process in RAM at startup</td>
<td>225.2 Mb</td>
</tr>
<tr>
<td>Welcome page</td>
<td>http://localhost:8080/</td>
</tr>
<tr>
<td>JMX console</td>
<td>http://localhost:8080/jmx-console/</td>
</tr>
</tbody>
</table>
<h2>Jetty</h2>
<p><a href="http://jetty.mortbay.org/jetty/">Jetty</a> provides an HTTP server, HTTP client, and a <a href="http://jcp.org/en/jsr/detail?id=154">Servlet </a> container.</p>
<h3>Jetty 6.x</h3>
<table border="1">
<tbody>
<tr>
<td>Version</td>
<td>6.1.22</td>
</tr>
<tr>
<td>What do you get ?</td>
<td>Servlet 2.5</td>
</tr>
<tr>
<td>Who is behind?</td>
<td><a href="http://www.intalio.com/">Intalio</a></td>
</tr>
<tr>
<td>Open source?</td>
<td>Yes with Apache License 2.0 (*)</td>
</tr>
<tr>
<td>Documentation</td>
<td><a href="http://docs.codehaus.org/display/JETTY/Jetty+Documentation">Jetty Documentation</a></td>
</tr>
<tr>
<td>Download</td>
<td><a href="http://dist.codehaus.org/jetty/jetty-6.1.22/jetty-6.1.22.zip">Zip file</a></td>
</tr>
<tr>
<td>Size of the downloaded file</td>
<td>24.3 Mb</td>
</tr>
<tr>
<td>Installation mode</td>
<td>Unzip the file</td>
</tr>
<tr>
<td>Size once installed on drive</td>
<td>69.3 Mb</td>
</tr>
<tr>
<td>How to start it</td>
<td>Execute %JETTY_HOME%\java -jar start.jar</td>
</tr>
<tr>
<td>Location of log files</td>
<td>%JETTY_HOME%\logs</td>
</tr>
<tr>
<td>Best startup time</td>
<td>7.1 s</td>
</tr>
<tr>
<td>Size of the process in RAM at startup</td>
<td>26.8 Mb</td>
</tr>
<tr>
<td>Welcome page</td>
<td>http://localhost:8080/</td>
</tr>
<tr>
<td>Snoop page</td>
<td>http://localhost:8080/test</td>
</tr>
</tbody>
</table>
<h3>Jetty 7.x</h3>
<table border="1">
<tbody>
<tr>
<td>Version</td>
<td>7.0.1</td>
</tr>
<tr>
<td>What do you get ?</td>
<td>A servlet 3.0 container</td>
</tr>
<tr>
<td>Who is behind?</td>
<td><a href="http://www.intalio.com/">Intalio</a></td>
</tr>
<tr>
<td>Open source?</td>
<td>Dual licensing</td>
</tr>
<tr>
<td>Documentation</td>
<td><a href="http://wiki.eclipse.org/Jetty/">Jetty Wiki</a></td>
</tr>
<tr>
<td>Download</td>
<td><a href="http://www.eclipse.org/downloads/download.php?file=/jetty/7.0.1.v20091125/dist/jetty-distribution-7.0.1.v20091125.zip">Zip file</a></td>
</tr>
<tr>
<td>Size of the downloaded file</td>
<td>2.2 Mb</td>
</tr>
<tr>
<td>Installation mode</td>
<td>Unzip the file</td>
</tr>
<tr>
<td>Size once installed on drive</td>
<td>2.8 Mb</td>
</tr>
<tr>
<td>How to start it</td>
<td>Execute %JETTY_HOME%\java -jar start.jar</td>
</tr>
<tr>
<td>Location of log files</td>
<td>%JETTY_HOME%\logs</td>
</tr>
<tr>
<td>Best startup time</td>
<td>1240 ms</td>
</tr>
<tr>
<td>Size of the process in RAM at startup</td>
<td>26.9 Mb</td>
</tr>
<tr>
<td>Welcome page</td>
<td>http://localhost:8080/</td>
</tr>
</tbody>
</table>
<h2>JOnAS</h2>
<p><a href="http://wiki.jonas.ow2.org/xwiki/bin/view/Main/WebHome">JOnAS</a> is an application server part of the <a href="http://www.ow2.org/">OW2</a> development community.</p>
<h3>JOnAS 5.1.1</h3>
<table border="1">
<tbody>
<tr>
<td>Version</td>
<td>5.1.1</td>
</tr>
<tr>
<td>What do you get ?</td>
<td>Java EE 5</td>
</tr>
<tr>
<td>Who is behind?</td>
<td><a href="http://www.ow2.org/">OW2</a></td>
</tr>
<tr>
<td>Open source?</td>
<td>LGPL</td>
</tr>
<tr>
<td>Documentation</td>
<td><a href="http://jonas.ow2.org/JONAS_5_1_1/doc/doc-en/html/index.html">JOnAS Documentation</a></td>
</tr>
<tr>
<td>Download</td>
<td><a href="http://download.forge.objectweb.org/jonas/jonas-full-5.1.1-bin.zip">Zip file</a></td>
</tr>
<tr>
<td>Size of the downloaded file</td>
<td>134 Mb</td>
</tr>
<tr>
<td>Installation mode</td>
<td>Unzip the file</td>
</tr>
<tr>
<td>Size once installed on drive</td>
<td>148 Mb</td>
</tr>
<tr>
<td>How to start it</td>
<td>Execute %JONAS_HOME%\bin\jonas start</td>
</tr>
<tr>
<td>Location of log files</td>
<td>%JONAS_HOME%\logs</td>
</tr>
<tr>
<td>Best startup time</td>
<td>15.3 s</td>
</tr>
<tr>
<td>Size of the process in RAM at startup</td>
<td>73.6 Mb</td>
</tr>
<tr>
<td>Welcome page</td>
<td>http://localhost:9000/</td>
</tr>
<tr>
<td>Admin page</td>
<td>http://localhost:9000/jonasAdmin</td>
</tr>
</tbody>
</table>
<h2>Resin</h2>
<p><a href="http://www.caucho.com/projects/resin/">Resin</a> provides an HTTP server, HTTP client, and a <a href="http://jcp.org/en/jsr/detail?id=154">javax.servlet 2.5 </a> container.</p>
<h3>Resin 3.x</h3>
<table border="1">
<tbody>
<tr>
<td>Version</td>
<td>3.1.9</td>
</tr>
<tr>
<td>What do you get ?</td>
<td>Servlet 2.5</td>
</tr>
<tr>
<td>Who is behind?</td>
<td><a href="http://www.caucho.com">Caucho</a></td>
</tr>
<tr>
<td>Open source?</td>
<td>Yes with GPL License</td>
</tr>
<tr>
<td>Documentation</td>
<td><a href="http://caucho.com/resin-3.1/doc/">Documentation Index</a></td>
</tr>
<tr>
<td>Download</td>
<td><a href="http://www.caucho.com/download/resin-3.1.9.zip">Zip core</a></td>
</tr>
<tr>
<td>Size of the downloaded file</td>
<td>9.9 Mb</td>
</tr>
<tr>
<td>Installation mode</td>
<td>Unzip the file</td>
</tr>
<tr>
<td>Size once installed on drive</td>
<td>26.6 Mb</td>
</tr>
<tr>
<td>How to start it</td>
<td>Execute %RESIN_HOME%\httpd.exe</td>
</tr>
<tr>
<td>Location of log files</td>
<td>%RESIN_HOME%\logs</td>
</tr>
<tr>
<td>Best startup time</td>
<td>1752 ms</td>
</tr>
<tr>
<td>Size of the process in RAM at startup</td>
<td>There are 3 processes : httpd (2.8 Mb), a console to start/stop (48Mb), a process (24.3Mb)</td>
</tr>
<tr>
<td>Welcome page</td>
<td>http://localhost:8080/</td>
</tr>
<tr>
<td>Admin console</td>
<td>http://localhost:8080/resin-admin/</td>
</tr>
</tbody>
</table>
<h3>Resin 4.x</h3>
<p>Resim 4.x is still in development. It implements the Java EE 6 Web Profile.</p>
<table border="1">
<tbody>
<tr>
<td>Version</td>
<td>4.0.2</td>
</tr>
<tr>
<td>What do you get ?</td>
<td>Java EE 6 Web Profile</td>
</tr>
<tr>
<td>Who is behind?</td>
<td><a href="http://www.caucho.com">Caucho</a></td>
</tr>
<tr>
<td>Open source?</td>
<td>Yes with GPL License</td>
</tr>
<tr>
<td>Documentation</td>
<td><a href="http://caucho.com/resin/doc/">Documentation Index</a></td>
</tr>
<tr>
<td>Download</td>
<td><a href="http://www.caucho.com/download/resin-4.0.2.zip">Zip core</a></td>
</tr>
<tr>
<td>Size of the downloaded file</td>
<td>16.9 Mb</td>
</tr>
<tr>
<td>Installation mode</td>
<td>Unzip the file</td>
</tr>
<tr>
<td>Size once installed on drive</td>
<td>28.2 Mb</td>
</tr>
<tr>
<td>How to start it</td>
<td>Execute %RESIN_HOME%\resin.exe console</td>
</tr>
<tr>
<td>Location of log files</td>
<td>%RESIN_HOME%\logs</td>
</tr>
<tr>
<td>Best startup time</td>
<td>1640 ms</td>
</tr>
<tr>
<td>Size of the process in RAM at startup</td>
<td>49 Mb</td>
</tr>
<tr>
<td>Welcome page</td>
<td>http://localhost:8080/</td>
</tr>
<tr>
<td>Admin console</td>
<td>http://localhost:8080/resin-admin/</td>
</tr>
</tbody>
</table>
<h2>Tomcat</h2>
<p><a href="http://tomcat.apache.org/">Apache Tomcat</a> is an open source software implementation of the <a href="http://jcp.org/en/jsr/detail?id=154">Servlet</a> specification. So we can say it&#8217;s a web container that servers Servlets and JSPs.</p>
<h3>Tomcat 6.x</h3>
<table border="1">
<tbody>
<tr>
<td>Version</td>
<td>6.0.20</td>
</tr>
<tr>
<td>What do you get ?</td>
<td>Servlet 2.5</td>
</tr>
<tr>
<td>Who is behind?</td>
<td><a href="http://www.apache.org/">Apache</a></td>
</tr>
<tr>
<td>Open source?</td>
<td>Yes with Apache Software License</td>
</tr>
<tr>
<td>Documentation</td>
<td><a href="http://tomcat.apache.org/tomcat-6.0-doc/index.html">Documentation Index</a></td>
</tr>
<tr>
<td>Download</td>
<td><a href="http://apache.crihan.fr/dist/tomcat/tomcat-6/v6.0.20/bin/apache-tomcat-6.0.20.zip">Zip core</a></td>
</tr>
<tr>
<td>Size of the downloaded file</td>
<td>6.1 Mb</td>
</tr>
<tr>
<td>Installation mode</td>
<td>Unzip the file</td>
</tr>
<tr>
<td>Size once installed on drive</td>
<td>9.8 Mb</td>
</tr>
<tr>
<td>How to start it</td>
<td>Execute %TOMCAT_HOME%\bin\startup.bat</td>
</tr>
<tr>
<td>Location of log files</td>
<td>%TOMCAT_HOME%\logs</td>
</tr>
<tr>
<td>Best startup time</td>
<td>591 ms</td>
</tr>
<tr>
<td>Size of the process in RAM at startup</td>
<td>23.3 Mb</td>
</tr>
<tr>
<td>Welcome page</td>
<td>http://localhost:8080/</td>
</tr>
<tr>
<td>Admin console (*)</td>
<td>http://localhost:8080/manager/html</td>
</tr>
</tbody>
</table>
<p>(*) To be able to log on to the admin console, you need to change the <tt>%TOMCAT_HOME%\conf\tomcat-users.xml</tt> configuration files and add a manager role.</p>
<h2>Weblogic</h2>
<p>Oracle Weblogic server belonged once to BEA and is a Java EE 5 application server.</p>
<h3>Weblogic 10.x</h3>
<table border="1">
<tbody>
<tr>
<td>Version</td>
<td>11g Rel 1 (10.3.2)</td>
</tr>
<tr>
<td>What do you get ?</td>
<td>Java EE 5</td>
</tr>
<tr>
<td>Who is behind?</td>
<td><a href="http://www.oracle.com">Oracle</a></td>
</tr>
<tr>
<td>Open source?</td>
<td>No, commercial product</td>
</tr>
<tr>
<td>Documentation</td>
<td><a href="http://download.oracle.com/docs/cd/E15523_01/wls.htm">Weblogic Server Documentation</a></td>
</tr>
<tr>
<td>Download</td>
<td><a href="http://www.oracle.com/technology/software/products/middleware/index.html">Installer</a></td>
</tr>
<tr>
<td>Size of the downloaded file</td>
<td>The installer is only 42 Mb. But the total downloaded is 738 Mb</td>
</tr>
<tr>
<td>Installation mode</td>
<td>Run the installer wizard with the Typical install type</td>
</tr>
<tr>
<td>Size once installed on drive</td>
<td>1.2 Gb</td>
</tr>
<tr>
<td>How to start it</td>
<td>You need to create a domain with the wizard.<br />
Then run %WEBLOGIC_HOME%\user_projects\domains\base_domain\bin\startWebLogic.cmd</td>
</tr>
<tr>
<td>JDK bundled</td>
<td>1.6.0_14</td>
</tr>
<tr>
<td>Location of log files</td>
<td>%WEBLOGIC_HOME%\user_projects\domains\base_domain\servers\AdminServer\logs</td>
</tr>
<tr>
<td>Best startup time</td>
<td>9 s</td>
</tr>
<tr>
<td>Size of the process in RAM at startup</td>
<td>126.2 Mb</td>
</tr>
<tr>
<td>Admin console</td>
<td>http://localhost:7001/console</td>
</tr>
</tbody>
</table>
<h2>Websphere</h2>
<h3>Websphere 7.x</h3>
<p>Websphere 7 is the Java EE 5 application server of IBM.</p>
<table border="1">
<tbody>
<tr>
<td>Version</td>
<td>7</td>
</tr>
<tr>
<td>What do you get ?</td>
<td>Java EE 5</td>
</tr>
<tr>
<td>Who is behind?</td>
<td><a href="http://www.ibm.com/">IBM</a></td>
</tr>
<tr>
<td>Open source?</td>
<td>No, commercial product</td>
</tr>
<tr>
<td>Documentation</td>
<td><a href="http://www-01.ibm.com/software/webservers/appserv/was/library/#Product%20documentation">Documentation</a></td>
</tr>
<tr>
<td>Download</td>
<td><a href="http://www.ibm.com/developerworks/downloads/ws/was/ be ready to fill many forms and click on many links">Zip file</a></td>
</tr>
<tr>
<td>Size of the downloaded file</td>
<td>838 Mb</td>
</tr>
<tr>
<td>Installation mode</td>
<td>Unzip + Wizard install (with all the defaults)</td>
</tr>
<tr>
<td>Size once installed on drive</td>
<td>1.16 Gb</td>
</tr>
<tr>
<td>How to start it</td>
<td>Execute %WEBSPHERE_HOME%\AppServer\profiles\AppSrv01\bin\startServer.bat server1 -profileName AppSrv01</td>
</tr>
<tr>
<td>Location of log files</td>
<td>%WEBSPHERE_HOME%\AppServer\profiles\AppSrv01\logs\server1</td>
</tr>
<tr>
<td>Best startup time</td>
<td>47.2 s</td>
</tr>
<tr>
<td>Size of the process in RAM at startup</td>
<td>133 Mb</td>
</tr>
<tr>
<td>Admin console</td>
<td>https://localhost:9043/ibm/console</td>
</tr>
</tbody>
</table>
<h2>Conclusion</h2>
<p>There is not a real conclusion that you can take out of these tests, just some hints and numbers to show you that things are moving. Comparing Websphere with Tomcat is like comparing apples with bananas. Of course Tomcat is way faster and lighter than Websphere, but it doesn&#8217;t do the same thing. Also some application servers are minimalist and only come with application containers. On the other hand, other come with integrated portals and so on. So, of course, the startup time is different.</p>
<p>All that to say that the figures of the table below have to be taken with respect of what the application server does (remember that Tomcat and Jetty are just servlet containers). <span style="color:#ff0000;">In red the less efficient</span>, <span style="color:#ff9900;">in orange the second less efficient</span>, <span style="color:#339966;">in green the most efficient</span>, <span style="color:#3366ff;">in blue the second most efficient</span>.</p>
<table border="1">
<tbody>
<tr>
<td>App server</td>
<td>What you get</td>
<td>Size on drive</td>
<td>Startup time</td>
<td>Process size</td>
</tr>
<tr>
<td>Geronimo 2.x</td>
<td>Java EE 5</td>
<td>101 Mb</td>
<td>17.6 s</td>
<td>118.8 Mb</td>
</tr>
<tr>
<td>GlassFish 2.x</td>
<td>Java EE 5</td>
<td>128 Mb</td>
<td>12 s</td>
<td>96.3 Mb</td>
</tr>
<tr>
<td>GlassFish 3.x</td>
<td>Java EE 6</td>
<td>90.4 Mb</td>
<td>5.6 s</td>
<td>76.2 Mb</td>
</tr>
<tr>
<td>JBoss 5.x</td>
<td>Java EE 5</td>
<td>151 Mb</td>
<td><span style="color:#ff0000;">1m 17 s</span></td>
<td><span style="color:#ff0000;">242.7 Mb</span></td>
</tr>
<tr>
<td>JBoss 6.x</td>
<td>Java EE 6</td>
<td>180 Mb</td>
<td>59.7 s</td>
<td><span style="color:#ff6600;">225.2 Mb</span></td>
</tr>
</tbody>
<tbody>
<tr>
<td>Jetty 6.x</td>
<td>Servlet 2.5</td>
<td>69.3 Mb</td>
<td>7.1 s</td>
<td><span style="color:#3366ff;">26.8 Mb</span></td>
</tr>
<tr>
<td>Jetty 7.x</td>
<td>Servlet 3.0</td>
<td><span style="color:#339966;">2.8 Mb</span></td>
<td><span style="color:#3366ff;">1240 ms</span></td>
<td>26.9 Mb</td>
</tr>
<tr>
<td>JOnAS 5.x</td>
<td>Java EE 5</td>
<td>148 Mb</td>
<td>15.3 s</td>
<td>73.6 Mb</td>
</tr>
<tr>
<td>Resin 3.x</td>
<td>Servlet 2.5</td>
<td>26.6 Mb</td>
<td>1752 ms</td>
<td>75.1 Mb</td>
</tr>
<tr>
<td>Resin 4.x</td>
<td>Java EE 6 Web Profile</td>
<td>28.2 Mb</td>
<td>1640 ms</td>
<td>49 Mb</td>
</tr>
<tr>
<td>Tomcat 6.x</td>
<td>Servlet 2.5</td>
<td><span style="color:#3366ff;">9.8 Mb</span></td>
<td><span style="color:#339966;">591 ms</span></td>
<td><span style="color:#339966;">23.3 Mb</span></td>
</tr>
<tr>
<td>Weblogic 10.x</td>
<td>Java EE 5</td>
<td><span style="color:#ff0000;">1.2 Gb</span></td>
<td>9 s</td>
<td>126.2 Mb</td>
</tr>
<tr>
<td>Websphere 7.x</td>
<td>Java EE 5</td>
<td><span style="color:#ff9900;">1.16 Gb</span></td>
<td><span style="color:#ff9900;">47.2 s</span></td>
<td>133 Mb</td>
</tr>
</tbody>
</table>
<h3>Java EE 5</h3>
<p>If you only concentrate on the Java EE 5 implementation, you&#8217;ll get the sub-table below :</p>
<table border="1">
<tbody>
<tr>
<td>App server</td>
<td>Size on drive</td>
<td>Startup time</td>
<td>Process size</td>
</tr>
<tr>
<td>Geronimo 2.x</td>
<td><span style="color:#339966;">101 Mb</span></td>
<td>17.6 s</td>
<td>118.8 Mb</td>
</tr>
<tr>
<td>GlassFish 2.x</td>
<td><span style="color:#3366ff;">128 Mb</span></td>
<td><span style="color:#3366ff;">12 s</span></td>
<td><span style="color:#3366ff;">96.3 Mb</span></td>
</tr>
<tr>
<td>JBoss 5.x</td>
<td>151 Mb</td>
<td><span style="color:#ff0000;">1m 17 s</span></td>
<td><span style="color:#ff0000;">242.7 Mb</span></td>
</tr>
<tr>
<td>JOnAS 5.x</td>
<td>148 Mb</td>
<td>15.3 s</td>
<td><span style="color:#339966;">73.6 Mb</span></td>
</tr>
<tr>
<td>Weblogic 10.x</td>
<td><span style="color:#ff0000;">1.2 Gb</span></td>
<td><span style="color:#339966;">9 s</span></td>
<td>126.2 Mb</td>
</tr>
<tr>
<td>Websphere 7.x</td>
<td><span style="color:#ff9900;">1.16 Gb</span></td>
<td><span style="color:#ff9900;">47.2 s</span></td>
<td><span style="color:#ff9900;">133 Mb</span></td>
</tr>
</tbody>
</table>
<p>When you read this table there are things that you would have not expected. For example, JBoss is the slowest server to startup and Weblogic is the fastest. JBoss is also the one that has the biggest memory footprint. Websphere has the second less efficient score of all categories, while GlassFish has the second most efficient scores. JOnAS, on the other hand, has the smallest memory footprint.</p>
<p>Again, I haven&#8217;t deployed any application, used the administration console extensively, created clusters and did any fancy performance tests. But I wanted to show you that a full Java EE 5 server can start in 9 seconds or can only take 73 Mb or RAM. With Java EE 6 coming and the Web Profile, application servers have to become more modular and carry less weight. GlassFish v3 is a good example as it starts up in only 5.6 seconds and Resin 4 in 1640 ms. Application servers today are not the same that when they were created 10 years ago. Things have changed : Java EE 6 has become lighter, and so are the application servers.</p>
<p><em>PS : If I have omitted an application server that you (and I) think is important,  let me know and I&#8217;ll give it a try and add it to the list. If you have any information to report, feel free to leave a comment.</em></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Another day, another jetty]]></title>
<link>http://memartine.wordpress.com/2009/12/11/another-day-another-jetty/</link>
<pubDate>Fri, 11 Dec 2009 07:34:14 +0000</pubDate>
<dc:creator>memartine</dc:creator>
<guid>http://memartine.wordpress.com/2009/12/11/another-day-another-jetty/</guid>
<description><![CDATA[A lake is the landscape&#8217;s most beautiful and expressive feature. It is earth&#8217;s eye; look]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><img src="http://memartine.wordpress.com/files/2009/12/20091211-imgp10381.jpg" alt="" title="20091211-IMGP1038" width="541" height="700" class="aligncenter size-full wp-image-202" /></p>
<blockquote><p>A lake is the landscape&#8217;s most beautiful and expressive feature.  It is earth&#8217;s eye; looking into which the beholder measures the depth of his own nature.<br />
~ Henry David Thoreau</p></blockquote>
<p>I walked over to a nearby suburb for the splendid lake views and a drink at the lovely lakeside cafe. Lo and behold, there was another jetty to photograph. </p>
<p><em>About the photo: </em>I have been using aperture priority, this was shot at f11. The late afternoon sun was a bit in the way and of course I had left my sun shade at home <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Grandma House - fishing for Crab]]></title>
<link>http://jongsart.wordpress.com/2009/12/11/grandma-house-fishing-for-crab/</link>
<pubDate>Fri, 11 Dec 2009 01:55:10 +0000</pubDate>
<dc:creator>Francis Jong</dc:creator>
<guid>http://jongsart.wordpress.com/2009/12/11/grandma-house-fishing-for-crab/</guid>
<description><![CDATA[Well promise is a promise, this is another one of Grandma house sketch, now this are the man made st]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Well promise is a promise, this is another one of Grandma house sketch, now this are the man made streams nearby the house, the stream are used for transporting harvested coconuts or cocoa by small &#8220;sampan&#8221; (wooden boat) to nearby collection point. As seen from the sketch, the stream water level are control by series of dam, especially useful during dry seasons. Lots of mud crab in those streams during those days, well mud crab aren&#8217;t that popular in the market back then mostly just consume locally by farmers well all those change now as restaurant now offer gourmet mud crab dishes nowadays. If you can see carefully there is a contraption (next to the man pulling the string from the water), it&#8217;s a square curved net with rotten fish head hanging in the middle. This are lowered into the stream and wait for movement on the string. Once they moved, just quickly pull them up there u have your crab. Pretty easy actually especially and they are hungry. Hope you like this sketch.</p>
<p><a href="http://jongsart.wordpress.com/files/2009/12/fishing-crab.jpg"><img class="aligncenter size-full wp-image-368" title="fishing crab" src="http://jongsart.wordpress.com/files/2009/12/fishing-crab.jpg" alt="" width="450" height="344" /></a><a href="http://jongsart.wordpress.com/files/2009/12/crab-trap.jpg"><img class="aligncenter size-full wp-image-373" title="crab trap" src="http://jongsart.wordpress.com/files/2009/12/crab-trap.jpg" alt="" width="449" height="333" /></a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Chrome and Jetty : Websockets]]></title>
<link>http://cjedaudio.wordpress.com/2009/12/10/chrome-and-jetty-websockets/</link>
<pubDate>Thu, 10 Dec 2009 22:56:19 +0000</pubDate>
<dc:creator>Jerome Denanot</dc:creator>
<guid>http://cjedaudio.wordpress.com/2009/12/10/chrome-and-jetty-websockets/</guid>
<description><![CDATA[Latest developer versions of Chrome (at least for Windows) include support for WebSockets. Moreover ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Latest developer versions of Chrome (at least for Windows) include support for WebSockets. Moreover a Jetty extension is available, that adds support for this communication mode on the server side.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Red Creek]]></title>
<link>http://robertburcul.wordpress.com/2009/12/11/red-creek/</link>
<pubDate>Thu, 10 Dec 2009 21:48:47 +0000</pubDate>
<dc:creator>Robert Burcul</dc:creator>
<guid>http://robertburcul.wordpress.com/2009/12/11/red-creek/</guid>
<description><![CDATA[]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p style="text-align:center;"><a href="http://robertburcul.wordpress.com/files/2009/12/red-creek1.jpg"><img class="alignnone size-full wp-image-4438" title="red-creek" src="http://robertburcul.wordpress.com/files/2009/12/red-creek1.jpg" alt="" width="494" height="669" /></a></p>
<p style="text-align:center;"><a href="http://robertburcul.com"><img class="alignnone size-full wp-image-232" title="link to more of robert's photography..." src="http://robertburcul.wordpress.com/files/2009/01/blogwidgetrb-copy.jpg" alt="" width="200" height="57" /></a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Saturday December 5 - Star Trails Over Lake Clifton ]]></title>
<link>http://eos20.wordpress.com/2009/12/07/saturday-december-5-star-trails-over-lake-clifton/</link>
<pubDate>Mon, 07 Dec 2009 06:54:18 +0000</pubDate>
<dc:creator>eos20</dc:creator>
<guid>http://eos20.wordpress.com/2009/12/07/saturday-december-5-star-trails-over-lake-clifton/</guid>
<description><![CDATA[It was a rather warm Summer night on Saturday here in Perth and we had clear skies, so I decided to ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>It was a rather warm Summer night on Saturday here in Perth and we had clear skies, so I decided to head out and spend a few hours shooting some star trails. I decided to head down to Lake Clifton <a title="Lake Clifton " href="http://www.lakeclifton.com.au" target="_blank">http://www.lakeclifton.com.au</a> South of Mandurah, and about 100km South of Perth. On this visit, there was no moon not like on my last visit <a title="Lake Clifton August 7 " href="http://eos20.wordpress.com/2009/08/07/august-7/" target="_blank">http://eos20.wordpress.com/2009/08/07/august-7/</a> so conditions were ideal for shooting star trails, but having some moon light would have been ideal so I could have used the ambient light from the moon to illuminate the Thrombolites <a title="Lake Clifton Thrombolites" href="http://www.lakeclifton.com.au/yalgorup.html" target="_blank">http://www.lakeclifton.com.au/yalgorup.html</a> so had to use my spotlight to bring out the detail of the Thrombolites. I brought along two cameras on this visit, I bought my EOS 7D and used my new EF-S 15-85 IS lens, and I also brought along my old EOS 300D and 18-55 lens, and I also brought along my 50mm f/2.5 macro to use as a large aperture lens. I set up both cameras on tripods with shutter release cables, and I shot a series of 30 second exposures and combined them using the Star Trails stacking software <a title="Star Trails Software" href="http://www.startrails.de/" target="_blank">http://www.startrails.de/</a> which I find does a better job then shooting a single long exposure which tends to result in a image full of long exposure noise which can easily ruin a nights work, and by using software I can delete frames if necessary (Planes flying though the exposure, camera shake, etc) and I get a cleaner final result and can shoot star trails pretty much anywhere without worrying about getting a over exposed shot when shooting near bright light sources such as in the city.</p>
<p>On this night it was pitch black, with no ambient lighting out here, since it&#8217;s located a fair way away from the nearest towns, which meant the stars were easily visible with very little light pollution other then headlights of passing cars off in the distance. There was a bit of lightning off towards the horizon East of my location when I arrived, but that only lasted about 30 mins and didn&#8217;t affect my shooting since I had the cameras pointed South to try and get the best star trail patterns, unfortunately I didn&#8217;t end up aiming the cameras directly at the Southern Star, so I was a bit off, and didn&#8217;t get the full circle I was after, but the results still came out well enough.</p>
<p>It was windy on this visit, unlike on my first visit where it was relativity calm which resulted in some nice reflections on the water, and the tide was coming in which meant the Thrombolites were submerged again on this visit, and I ended up getting wet to set my camera up low enough to get the composition I was after on my final star trail series, but I think it was worth it for the shot I ended up getting. Here are a few of the photos from the night:</p>
<p><a title="Star Trails Over Lake Clifton " href="http://www.redbubble.com/people/eos20/art/4261586-2-star-trails-over-lake-clifton" target="_blank">http://www.redbubble.com/people/eos20/art/4261586-2-star-trails-over-lake-clifton</a></p>
<p><a title="Star Trails Over Lake Clifton Thrombolites " href="http://www.redbubble.com/people/eos20/art/4261582-2-star-trails-over-lake-clifton-thrombolites" target="_blank">http://www.redbubble.com/people/eos20/art/4261582-2-star-trails-over-lake-clifton-thrombolites</a></p>
<p><a title="Star Trails Over Thrombolites " href="http://www.redbubble.com/people/eos20/art/4262314-3-star-trails-over-thrombolites" target="_blank">http://www.redbubble.com/people/eos20/art/4262314-3-star-trails-over-thrombolites</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Aftermath: the damage at Derg Marina]]></title>
<link>http://irishwaterwayshistory.com/2009/12/06/aftermath-the-damage-at-derg-marina/</link>
<pubDate>Sun, 06 Dec 2009 19:15:13 +0000</pubDate>
<dc:creator>bjg</dc:creator>
<guid>http://irishwaterwayshistory.com/2009/12/06/aftermath-the-damage-at-derg-marina/</guid>
<description><![CDATA[The wooden jetties at Derg Marina, Ballina, above Killaloe Bridge at the bottom of Lough Derg, suffe]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>The wooden jetties at Derg Marina, Ballina, above Killaloe Bridge at the bottom of Lough Derg, suffered <a title="Aftermath: Derg Marina" href="http://wp.me/Ppxzo-NJ" target="_blank">severe damage</a> in the floods.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Afternoon Jetty]]></title>
<link>http://memartine.wordpress.com/2009/12/01/afternoon-jetty/</link>
<pubDate>Tue, 01 Dec 2009 09:01:20 +0000</pubDate>
<dc:creator>memartine</dc:creator>
<guid>http://memartine.wordpress.com/2009/12/01/afternoon-jetty/</guid>
<description><![CDATA[Summer afternoon, summer afternoon; to me those have always been the two most beautiful words in the]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><img src="http://memartine.wordpress.com/files/2009/12/20091201-imgp0813.jpg" alt="Jetty late afternoon" title="Jetty" width="700" height="473" class="aligncenter size-full wp-image-148" /></p>
<blockquote><p>Summer afternoon, summer afternoon; to me those have always been the two most beautiful words in the English language.<br />
~ Henry James</p></blockquote>
<p>At around 5pm I went back to the jetty I photographed <a href="http://memartine.wordpress.com/2009/11/30/storm-brewing/">yesterday</a> to see what it looked like in the late afternoon light on a sunny day.</p>
<p><em>About the photo: </em>This time I got even lower and photographed the jetty. I shielded the lens with my hand as I hadn&#8217;t brought my the sun shade for my lens. In Lightroom I brought out the colour of the wood a bit more and had to do a straighten and a crop as I hadn&#8217;t quite gotten the horizon straight.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[What Java EE Server do you use?]]></title>
<link>http://technicalbrainwave.wordpress.com/2009/11/30/what-java-ee-server-do-you-use/</link>
<pubDate>Mon, 30 Nov 2009 14:59:59 +0000</pubDate>
<dc:creator>Gift Sam</dc:creator>
<guid>http://technicalbrainwave.wordpress.com/2009/11/30/what-java-ee-server-do-you-use/</guid>
<description><![CDATA[Java EE servers are based on the Java™ 2 Platform, Enterprise Edition (J2EE™) and is used widely to ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Java EE servers are based on the Java™ 2 Platform, Enterprise Edition (J2EE™) and is used widely to provide code portability, reuse across tiers, platform support, scalability and for EJB strengths. Instead these supports are provided by the most of the java EE servers, this article is the place where you can share the Java EE servers used during your project development. I have assessed most of the Java EE servers used by the developers in the below. <em><strong>Kindly choose the Java EE server(Choose all that apply) which you use, also share the reason why you choose the particular Java EE server for your project development.</strong></em> Also if your option is others remark your Java EE server in the comments.</p>
<a name="pd_a_2320814"></a><div class="PDS_Poll" id="PDI_container2320814" style="display:inline-block;"></div><script type="text/javascript" language="javascript" charset="utf-8" src="http://static.polldaddy.com/p/2320814.js"></script>
		<noscript>
		<a href="http://answers.polldaddy.com/poll/2320814/">View This Poll</a><br/><span style="font-size:10px;"><a href="http://www.polldaddy.com">surveys</a></span>
		</noscript>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Storm Brewing]]></title>
<link>http://memartine.wordpress.com/2009/11/30/storm-brewing/</link>
<pubDate>Mon, 30 Nov 2009 04:57:55 +0000</pubDate>
<dc:creator>memartine</dc:creator>
<guid>http://memartine.wordpress.com/2009/11/30/storm-brewing/</guid>
<description><![CDATA[If you spend your whole life waiting for the storm, you&#8217;ll never enjoy the sunshine. ~Morris W]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><img src="http://memartine.wordpress.com/files/2009/11/20091130-imgp0791.jpg" alt="Jetty with storm brewing" title="Stormy Jetty" width="700" height="469" class="aligncenter size-full wp-image-138" /></p>
<blockquote><p>If you spend your whole life waiting for the storm, you&#8217;ll never enjoy the sunshine.<br />
~Morris West
</p></blockquote>
<p>A stormy day today with lots of wind. I thought it&#8217;d be interesting to go to the same marina as where I shot <a href="http://memartine.wordpress.com/2009/11/22/boats/">Boats</a>. I actually managed to get a few good shots today and picking which one to upload was difficult (the luxury!). </p>
<p><em>About the photo:</em> I used the landscape setting to take this photo and played around with viewpoints, rather than camera settings today. I have several versions of this photo, but I prefer this one where I got down low over the standing-up versions. I think it&#8217;s much more powerful in leading your eye through the photo. Also, I deliberately broke the <a href="http://digital-photography-school.com/rule-of-thirds">rule-of-thirds</a> here and I think it paid off.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[prime real estate...]]></title>
<link>http://tonymiddleton.wordpress.com/2009/11/29/prime-real-estate-2/</link>
<pubDate>Sun, 29 Nov 2009 01:37:38 +0000</pubDate>
<dc:creator>Tony Middleton</dc:creator>
<guid>http://tonymiddleton.wordpress.com/2009/11/29/prime-real-estate-2/</guid>
<description><![CDATA[These terns seem to love the posts on this little jetty. I had seen birds on these numerous times be]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>These terns seem to love the posts on this little jetty. I had seen birds on these numerous times before and thought they looked pretty cool. I had ventured to the spot a few times hoping to get a shot similar to this but the birds never co-operated&#8230; Sometimes there would be seagulls hogging this prime real estate, but for some reason they just seemed to &#8216;flighty&#8217; when I would be about to take the shot !  This particular foggy morning the terns were having their turn at the prime real estate and it all came together and I shot this on 6&#215;17 and this is a 6&#215;6 crop so I&#8217;m pretty stoked with it.</p>
<p style="text-align:center;"><a href="http://tonymiddleton.wordpress.com/files/2009/11/terns-iii-copy.jpg"><img class="aligncenter size-medium wp-image-950" title="terns" src="http://tonymiddleton.wordpress.com/files/2009/11/terns-iii-copy.jpg?w=299" alt="" width="299" height="300" /></a></p>
<p style="text-align:center;">‘prime real estate  –  medium format 6&#215;6 velvia. ’</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Charles visits Pulau Ketam Jetties]]></title>
<link>http://votecharles.wordpress.com/2009/11/27/charles-visits-pulau-ketam-jetties/</link>
<pubDate>Fri, 27 Nov 2009 02:00:28 +0000</pubDate>
<dc:creator>charlessantiago</dc:creator>
<guid>http://votecharles.wordpress.com/2009/11/27/charles-visits-pulau-ketam-jetties/</guid>
<description><![CDATA[Visiting Pulau Ketam 7A Jetty at 2:30pm on 25th Nov 2009]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Visiting Pulau Ketam 7A Jetty at 2:30pm on 25th Nov 2009</p>
<p><a href="http://votecharles.wordpress.com/files/2009/11/ketam3.jpg"><img class="alignnone size-full wp-image-3925" title="ketam3" src="http://votecharles.wordpress.com/files/2009/11/ketam3.jpg" alt="" width="510" height="382" /></a></p>
<p><a href="http://votecharles.wordpress.com/files/2009/11/ketam21.jpg"><img class="alignnone size-full wp-image-3926" title="ketam2" src="http://votecharles.wordpress.com/files/2009/11/ketam21.jpg" alt="" width="510" height="382" /></a></p>
<p><a href="http://votecharles.wordpress.com/files/2009/11/ketam5.jpg"><img class="alignnone size-full wp-image-3927" title="ketam5" src="http://votecharles.wordpress.com/files/2009/11/ketam5.jpg" alt="" width="510" height="382" /></a></p>
<p><a href="http://votecharles.wordpress.com/files/2009/11/ketam6.jpg"><img class="alignnone size-full wp-image-3928" title="ketam6" src="http://votecharles.wordpress.com/files/2009/11/ketam6.jpg" alt="" width="510" height="382" /></a></p>
<p><a href="http://votecharles.wordpress.com/files/2009/11/ketam7.jpg"><img class="alignnone size-full wp-image-3929" title="ketam7" src="http://votecharles.wordpress.com/files/2009/11/ketam7.jpg" alt="" width="510" height="382" /></a></p>
<p><a href="http://votecharles.wordpress.com/files/2009/11/ketam8.jpg"><img class="alignnone size-full wp-image-3930" title="ketam8" src="http://votecharles.wordpress.com/files/2009/11/ketam8.jpg" alt="" width="510" height="382" /></a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Applecross Jetty Remnants]]></title>
<link>http://lloydsnook.wordpress.com/2009/11/22/applecross-jetty-remnants/</link>
<pubDate>Sun, 22 Nov 2009 05:11:45 +0000</pubDate>
<dc:creator>Lloyd</dc:creator>
<guid>http://lloydsnook.wordpress.com/2009/11/22/applecross-jetty-remnants/</guid>
<description><![CDATA[]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><a href="http://lloydsnook.wordpress.com/files/2009/11/applecross-jetty-2009.jpg"><img src="http://lloydsnook.wordpress.com/files/2009/11/applecross-jetty-2009.jpg" alt="" title="Applecross - Jetty - 2009" width="450" height="762" class="alignnone size-full wp-image-313" /></a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[MySQL Test Connection using Spring MVC]]></title>
<link>http://numberformat.wordpress.com/2009/11/15/mysql-test-connection-using-spring-mvc/</link>
<pubDate>Sun, 15 Nov 2009 14:50:36 +0000</pubDate>
<dc:creator>numberformat</dc:creator>
<guid>http://numberformat.wordpress.com/2009/11/15/mysql-test-connection-using-spring-mvc/</guid>
<description><![CDATA[This page will describe how to create a spring MVC application to test a connection to MySQL databas]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>This page will describe how to create a spring MVC application to test a connection to MySQL database. The user will provide the connection URL and username/password. The system will make a simple connection to the database and return the results to the screen.</p>
<h3>Requirements</h3>
<ul>
<li>Access to a MySQL Server</li>
<li>Maven 2</li>
<li>Eclipse</li>
<li>Spring 2.5</li>
<li>Java 1.5 or above</li>
</ul>
<h3>Start a new Project</h3>
<p>Start a new project by creating it from an archetype.</p>
<p>mvn archetype:generate<br />
Choose option:<br />
18: internal -&#62; maven-archetype-webapp (A simple Java web application)</p>
<p>Answer the questions like this:</p>
<pre class="brush: bash;">
Define value for groupId: : test
Define value for artifactId: : spring-mysql-test
Define value for version:  1.0-SNAPSHOT: :
Define value for package:  test: :
Confirm properties configuration:
groupId: test
artifactId: spring-mysql-test
version: 1.0-SNAPSHOT
package: test
 Y: :
</pre>
<p>cd spring-mysql-test<br />
modify pom.xml and insert the following dependencies</p>
<pre class="brush: xml;">
	&#60;dependencies&#62;
		&#60;dependency&#62;
			&#60;groupId&#62;mysql&#60;/groupId&#62;
			&#60;artifactId&#62;mysql-connector-java&#60;/artifactId&#62;
			&#60;version&#62;5.1.9&#60;/version&#62;
		&#60;/dependency&#62;
		&#60;dependency&#62;
		  &#60;groupId&#62;org.springframework&#60;/groupId&#62;
		  &#60;artifactId&#62;spring&#60;/artifactId&#62;
		  &#60;version&#62;2.5.6&#60;/version&#62;
		&#60;/dependency&#62;
		&#60;dependency&#62;
		  &#60;groupId&#62;org.springframework&#60;/groupId&#62;
		  &#60;artifactId&#62;spring-webmvc&#60;/artifactId&#62;
		  &#60;version&#62;2.5.6&#60;/version&#62;
		&#60;/dependency&#62;
	&#60;dependency&#62;
		&#60;groupId&#62;org.apache.geronimo.specs&#60;/groupId&#62;
		&#60;artifactId&#62;geronimo-servlet_2.5_spec&#60;/artifactId&#62;
		&#60;version&#62;1.2&#60;/version&#62;
		&#60;type&#62;jar&#60;/type&#62;
		&#60;scope&#62;provided&#60;/scope&#62;
	&#60;/dependency&#62;
	&#60;/dependencies&#62;
</pre>
<p>insert the following into</p>
<p>spring-mysql-test/src/main/webapp/WEB-INF/web.xml</p>
<pre class="brush: xml;">
	&#60;display-name&#62;TestWeb&#60;/display-name&#62;
	&#60;servlet&#62;
		&#60;servlet-name&#62;spring&#60;/servlet-name&#62;
		&#60;servlet-class&#62;org.springframework.web.servlet.DispatcherServlet&#60;/servlet-class&#62;
	&#60;/servlet&#62;

	&#60;servlet-mapping&#62;
		&#60;servlet-name&#62;spring&#60;/servlet-name&#62;
		&#60;url-pattern&#62;/app/*&#60;/url-pattern&#62;
	&#60;/servlet-mapping&#62;

	&#60;welcome-file-list&#62;
		&#60;welcome-file&#62;/app/helloWorld&#60;/welcome-file&#62;
	&#60;/welcome-file-list&#62;
</pre>
<p>Insert the following into</p>
<p>spring-mysql-test/src/main/webapp/WEB-INF/spring-servlet.xml</p>
<pre class="brush: xml;">
&#60;?xml version=&#34;1.0&#34; encoding=&#34;UTF-8&#34;?&#62;  

&#60;beans xmlns=&#34;http://www.springframework.org/schema/beans&#34;
    xmlns:xsi=&#34;http://www.w3.org/2001/XMLSchema-instance&#34;
    xmlns:p=&#34;http://www.springframework.org/schema/p&#34;
    xmlns:context=&#34;http://www.springframework.org/schema/context&#34;
    xsi:schemaLocation=&#34;

http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-2.5.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context-2.5.xsd&#34;&#62;

	&#60;context:component-scan base-package=&#34;test&#34; /&#62;

	&#60;bean id=&#34;viewResolver&#34;
		class=&#34;org.springframework.web.servlet.view.InternalResourceViewResolver&#34;&#62;
		&#60;property name=&#34;prefix&#34; value=&#34;/WEB-INF/jsp/&#34; /&#62;
		&#60;property name=&#34;suffix&#34; value=&#34;.jsp&#34; /&#62;
	&#60;/bean&#62;

&#60;/beans&#62;
</pre>
<p>Create a java class that looks like this&#8230;</p>
<p>spring-mysql-test/src/main/java/test/HelloWorldController.java</p>
<pre class="brush: java;">
package test;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;
import org.springframework.stereotype.Controller;

@Controller(&#34;/helloWorld&#34;)
public class HelloWorldController extends AbstractController {
	@Override
	protected ModelAndView handleRequestInternal(HttpServletRequest request,
			HttpServletResponse response) throws Exception {

		ModelAndView mav = null;
		// control logic goes here
		mav = new ModelAndView(&#34;helloWorld&#34;);
		return mav;
	}
}
</pre>
<p>spring-mysql-test/src/main/webapp/WEB-INF/jsp/helloWorld.jsp</p>
<pre class="brush: xml;">
&#60;!DOCTYPE html PUBLIC &#34;-//W3C//DTD XHTML 1.0 Strict//EN&#34;
 &#34;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&#34;&#62;
&#60;html xmlns=&#34;http://www.w3.org/1999/xhtml&#34; lang=&#34;en&#34; xml:lang=&#34;en&#34;&#62;
	&#60;head&#62;
		&#60;title&#62;HelloWorld test page&#60;/title&#62;
		&#60;meta http-equiv=&#34;Content-type&#34; content=&#34;text/html; charset=iso-8859-1&#34; /&#62;
		&#60;meta http-equiv=&#34;Content-Language&#34; content=&#34;en-us&#34; /&#62;
	&#60;/head&#62;

	&#60;body&#62;
		Hello World page!
	&#60;/body&#62;
&#60;/html&#62;
</pre>
<h3>Run the Project</h3>
<p>In order to run the project we need to put a couple of more things into pom.xml file.</p>
<p>1. The jetty plugin will allow Maven to run the project in the jetty servlet container. In the plug-in section of the pom.xml file put in the following&#8230;<br />
2. By default Maven uses an old version of the JDK to compile. We need to set it to use a higher version. (supports annotations). If you don&#8217;t have 1.6 then change the source and target elements below to 1.5 at least.</p>
<p>pom.xml inside the build tag</p>
<pre class="brush: xml;">
  &#60;build&#62;
    &#60;finalName&#62;spring-mysql-test&#60;/finalName&#62;
		&#60;plugins&#62;
			&#60;plugin&#62;
				&#60;groupId&#62;org.apache.maven.plugins&#60;/groupId&#62;
				&#60;artifactId&#62;maven-compiler-plugin&#60;/artifactId&#62;
				&#60;version&#62;2.0.2&#60;/version&#62;
				&#60;configuration&#62;
					&#60;source&#62;1.6&#60;/source&#62;
					&#60;target&#62;1.6&#60;/target&#62;
				&#60;/configuration&#62;
			&#60;/plugin&#62;
			&#60;plugin&#62;
				&#60;groupId&#62;org.mortbay.jetty&#60;/groupId&#62;
				&#60;artifactId&#62;jetty-maven-plugin&#60;/artifactId&#62;
				&#60;configuration&#62;
					&#60;scanIntervalSeconds&#62;1&#60;/scanIntervalSeconds&#62;
				&#60;/configuration&#62;
			&#60;/plugin&#62;
		&#60;/plugins&#62;
  &#60;/build&#62;
</pre>
<p>To run the web application type:<br />
type jetty:run</p>
<p>Navigate your browser to http://localhost:8080/app/helloWorld to test if everything is okay up to this point. If something is not working please review the steps seen above and make sure you at least see hello world printed on the screen.</p>
<p>We will create a Controller that draws a input form that the user can use to specify database url, username, password.</p>
<p>The controller will take this form submission and make a connection to the database with the results printed to the screen.</p>
<p>spring-mysql-test/src/main/java/test/TestDBController.java</p>
<pre class="brush: java;">
package test;

import java.sql.Connection;
import java.sql.DriverManager;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;
import org.springframework.validation.BindException;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;

@Controller(&#34;/dbParameters&#34;)
public class TestDBConnectionController extends SimpleFormController {

	public TestDBConnectionController() {
		setFormView(&#34;dbParameters&#34;);
		setCommandClass(DBParam.class);
		setSuccessView(&#34;success&#34;);
		setCommandName(&#34;dbParam&#34;);
	}

	@Override
	protected ModelAndView processFormSubmission(HttpServletRequest request,
			HttpServletResponse response, Object command, BindException errors)
			throws Exception {
		System.out.println(&#34;form submitted&#34;);

		DBParam dbParam = (DBParam)command;
		String url = dbParam.getUrl();
		String username = dbParam.getUsername();
		String password = dbParam.getPassword();

		// make a connection
		Class.forName(&#34;com.mysql.jdbc.Driver&#34;).newInstance();
		Connection conn = DriverManager.getConnection(url, username, password);
		System.out.println(&#34;got a connection: &#34; + conn);

		return super.processFormSubmission(request, response, command, errors);
	}
}
</pre>
<p>We have enabled component scanning in our spring-servlet.xml file so we don&#8217;t have to register this controller in the xml file.</p>
<p>spring-mysql-test/src/main/webapp/WEB-INF/jsp/dbParameters.jsp</p>
<pre class="brush: xml;">
&#60;!DOCTYPE html PUBLIC &#34;-//W3C//DTD XHTML 1.0 Strict//EN&#34;
 &#34;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&#34;&#62;

&#60;html xmlns=&#34;http://www.w3.org/1999/xhtml&#34; lang=&#34;en&#34; xml:lang=&#34;en&#34;&#62;
&#60;head&#62;
&#60;title&#62;DB Parameters&#60;/title&#62;
&#60;meta http-equiv=&#34;Content-type&#34; content=&#34;text/html; charset=iso-8859-1&#34; /&#62;
&#60;meta http-equiv=&#34;Content-Language&#34; content=&#34;en-us&#34; /&#62;

&#60;/head&#62;
&#60;body&#62;
	&#60;form method=&#34;post&#34;&#62;
		&#60;label&#62;JDBC connect string: &#60;/label&#62;&#60;input type=&#34;text&#34; name=&#34;url&#34;/&#62;&#60;br/&#62;
		&#60;label&#62;password: &#60;/label&#62;&#60;input type=&#34;text&#34; name=&#34;username&#34;/&#62;&#60;br/&#62;
		&#60;label&#62;username: &#60;/label&#62;&#60;input type=&#34;password&#34; name=&#34;password&#34;/&#62;&#60;br/&#62;
		&#60;input type=&#34;submit&#34; value=&#34;submit&#34;/&#62;&#60;br/&#62;
	&#60;/form&#62;
&#60;/body&#62;
&#60;/html&#62;
</pre>
<p>spring-mysql-test/src/main/webapp/WEB-INF/jsp/success.jsp</p>
<pre class="brush: xml;">
&#60;!DOCTYPE html PUBLIC &#34;-//W3C//DTD XHTML 1.0 Strict//EN&#34;
 &#34;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&#34;&#62;

&#60;html xmlns=&#34;http://www.w3.org/1999/xhtml&#34; lang=&#34;en&#34; xml:lang=&#34;en&#34;&#62;
&#60;head&#62;
&#60;title&#62;DB Parameters&#60;/title&#62;
&#60;meta http-equiv=&#34;Content-type&#34; content=&#34;text/html; charset=iso-8859-1&#34; /&#62;
&#60;meta http-equiv=&#34;Content-Language&#34; content=&#34;en-us&#34; /&#62;

&#60;/head&#62;
&#60;body&#62;
	success
&#60;/body&#62;
&#60;/html&#62;
</pre>
<h3>Run the project</h3>
<p>You may run the project under jetty</p>
<p>mvn jetty:run</p>
<p>navigate your browser to:</p>
<p>http://localhost:8080/</p>
<p>http://localhost:8080/app/dbParameters</p>
<p>&#160;</p>
<h3>That&#8217;s it for now!!!</h3>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Two people hurt on jetty - Crescent City]]></title>
<link>http://eurekademocrat.wordpress.com/2009/11/11/two-people-hurt-on-jetty-crescent-city/</link>
<pubDate>Wed, 11 Nov 2009 17:13:39 +0000</pubDate>
<dc:creator>highboldtage</dc:creator>
<guid>http://eurekademocrat.wordpress.com/2009/11/11/two-people-hurt-on-jetty-crescent-city/</guid>
<description><![CDATA[Two people hurt on jetty Written by Nick Grube, The Triplicate November 10, 2009 12:00 am Two people]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Two people hurt on jetty</p>
<p>Written by Nick Grube, The Triplicate	 November 10, 2009 12:00 am</p>
<p>Two people, including a 10-year-old boy, were washed off the Crescent City jetty by a wave Sunday and taken by ambulance to Sutter Coast Hospital.</p>
<p><a href="http://www.triplicate.com/20091110107428/News/Local-News/Two-people-hurt-on-jetty">http://www.triplicate.com/20091110107428/News/Local-News/Two-people-hurt-on-jetty</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Jetty Road gets shot at golden guitars]]></title>
<link>http://latestondiamonds.wordpress.com/2009/11/11/jetty-road-gets-shot-at-golden-guitars/</link>
<pubDate>Wed, 11 Nov 2009 14:50:08 +0000</pubDate>
<dc:creator>neatnew</dc:creator>
<guid>http://latestondiamonds.wordpress.com/2009/11/11/jetty-road-gets-shot-at-golden-guitars/</guid>
<description><![CDATA[TWINS Paula and Lee Bowman have been singing together since they could talk&#8230;. From The Austral]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>TWINS Paula and Lee Bowman have been singing together since they could talk&#8230;. From The Australian. <a href="http://theaustralian.news.com.au/story/0,,26338522-2702,00.html?from=public_rss">Full story</a></p>
<p>This site may contain information about:  diamond cut.  The blog is also related to: diamond bridal jewelry.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Create Web Project using Maven Archetypes]]></title>
<link>http://numberformat.wordpress.com/2009/11/08/create-web-project-using-maven-archetypes/</link>
<pubDate>Sun, 08 Nov 2009 06:19:14 +0000</pubDate>
<dc:creator>numberformat</dc:creator>
<guid>http://numberformat.wordpress.com/2009/11/08/create-web-project-using-maven-archetypes/</guid>
<description><![CDATA[This page describes the process of creating a standard web project using maven Archetypes. Afterward]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>This page describes the process of creating a standard web project using maven Archetypes. Afterwards we will run the web application in the built-in servlet container called jetty and an external one with Tomcat 6.</p>
<p>Requirements</p>
<ol>
<li>Eclipse J2EE IDE</li>
<li><a href="http://wp.me/pvUBW-bz">Tomcat installed and integrated with eclipse WTP.</a></li>
<li><a href="http://wp.me/pvUBW-ev">Maven 2</a></li>
<li>Ability to command line on your machine</li>
</ol>
<p>We start by creating the project</p>
<p>mvn archetype:generate</p>
<p>Choose option for &#8220;maven-archetype-webapp&#8221;</p>
<p>By default the archetype does not create a javasource folder so go ahead and create the following directory under the project.</p>
<p>src/main/java</p>
<p>Also by default the web application is not a <a href="http://www.eclipse.org/webtools/" target="_blank">WTP</a> application, it has no idea how to run itself under jetty and does not know how to regenerate itself as an eclipse project.</p>
<p>In order to make this project do all those cool things we need to add a couple lines of code in the plugins section of the pom.xml file.</p>
<pre class="brush: xml;">
		&#60;plugin&#62;
			&#60;groupId&#62;org.apache.maven.plugins&#60;/groupId&#62;
			&#60;artifactId&#62;maven-war-plugin&#60;/artifactId&#62;
			&#60;configuration&#62;
				&#60;warName&#62;${artifactId}&#60;/warName&#62;
			&#60;/configuration&#62;
		&#60;/plugin&#62;
		&#60;plugin&#62;
			&#60;groupId&#62;org.apache.maven.plugins&#60;/groupId&#62;
			&#60;artifactId&#62;maven-eclipse-plugin&#60;/artifactId&#62;
			&#60;configuration&#62;
				&#60;projectNameTemplate&#62;${artifactId}&#60;/projectNameTemplate&#62;
				&#60;wtpapplicationxml&#62;true&#60;/wtpapplicationxml&#62;
				&#60;downloadSources&#62;true&#60;/downloadSources&#62;
				&#60;downloadJavadocs&#62;true&#60;/downloadJavadocs&#62;
				&#60;wtpversion&#62;1.5&#60;/wtpversion&#62;
				&#60;classpathContainers&#62;
					&#60;classpathContainer&#62;org.eclipse.jst.j2ee.internal.web.container&#60;/classpathContainer&#62;
					&#60;classpathContainer&#62;org.eclipse.jst.j2ee.internal.module.container&#60;/classpathContainer&#62;
				&#60;/classpathContainers&#62;
			&#60;/configuration&#62;
		&#60;/plugin&#62;
		&#60;plugin&#62;
			&#60;groupId&#62;org.mortbay.jetty&#60;/groupId&#62;
			&#60;artifactId&#62;jetty-maven-plugin&#60;/artifactId&#62;
		&#60;/plugin&#62;
</pre>
<p>By default the pom.xml that is created by this archetype does not specify to the other plugins what jvm version we will be using: In the build section of the pom.xml file put the following.</p>
<pre class="brush: xml;">
	&#60;pluginManagement&#62;
		&#60;plugins&#62;
			&#60;plugin&#62;
				&#60;groupId&#62;org.apache.maven.plugins&#60;/groupId&#62;
				&#60;artifactId&#62;maven-compiler-plugin&#60;/artifactId&#62;
		&#60;configuration&#62;
			&#60;source&#62;1.6&#60;/source&#62;
			&#60;target&#62;1.6&#60;/target&#62;
		&#60;/configuration&#62;
			&#60;/plugin&#62;
		&#60;/plugins&#62;
	&#60;/pluginManagement&#62;
</pre>
<p>In order to create a web application you need additional dependencies to be added</p>
<pre class="brush: xml;">
&#60;dependency&#62;
	&#60;groupId&#62;org.apache.geronimo.specs&#60;/groupId&#62;
	&#60;artifactId&#62;geronimo-servlet_2.5_spec&#60;/artifactId&#62;
	&#60;version&#62;1.2&#60;/version&#62;
	&#60;type&#62;jar&#60;/type&#62;
	&#60;scope&#62;provided&#60;/scope&#62;
&#60;/dependency&#62;
</pre>
<h3>Regenerate the eclipse project</h3>
<pre class="brush: xml;">
mvn eclipse:clean eclipse:eclipse
</pre>
<p>Return to eclipse and refresh the project.</p>
<h3>Creating a servlet</h3>
<p>Create a test Servlet.</p>
<pre class="brush: java;">
package com.test;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class TestServlet extends HttpServlet {

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		System.out.println(&#34;servlet ran successfully&#34;);
		request.getRequestDispatcher(&#34;/index.jsp&#34;).forward(request, response);
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	}

}
</pre>
<p>Modify the xml to look like this:</p>
<pre class="brush: xml;">
&#60;!DOCTYPE web-app PUBLIC
 &#34;-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN&#34;
 &#34;http://java.sun.com/dtd/web-app_2_3.dtd&#34; &#62;

&#60;web-app&#62;
  &#60;display-name&#62;Archetype Created Web Application&#60;/display-name&#62;
  &#60;servlet&#62;
  	&#60;servlet-name&#62;TestServlet&#60;/servlet-name&#62;
  	&#60;display-name&#62;TestServlet&#60;/display-name&#62;
  	&#60;description&#62;&#60;/description&#62;
  	&#60;servlet-class&#62;
  	com.test.TestServlet&#60;/servlet-class&#62;
  &#60;/servlet&#62;
  &#60;servlet-mapping&#62;
  	&#60;servlet-name&#62;TestServlet&#60;/servlet-name&#62;
  	&#60;url-pattern&#62;/TestServlet&#60;/url-pattern&#62;
  &#60;/servlet-mapping&#62;
&#60;/web-app&#62;
</pre>
<h3>Running the Web Project in Jetty</h3>
<p>In the project top level directory start the jetty servlet engine.</p>
<p>mvn jetty:run</p>
<p>Open browser and navigate to http://localhost:8080/ You should be seeing a hello world page. To test the servlet navigate to  http://localhost:8080/TestServlet</p>
<p>When you run the servlet you should see &#8220;servlet ran successfully&#8221; printed to the console and the same Hello World message in the browser.</p>
<p>When you are done with the test, shut down the jetty server by hitting CTRL-C on the command line window.</p>
<h3>Running the Web Project in Tomcat 6</h3>
<p>Please make sure you have shut-down jetty before proceeding&#8230; Unless you changed them both jetty and tomcat 6 run on the default port of 8080. They both can not run at the same time.</p>
<p>Using Eclipse WTP all you need to do is make sure that Tomcat is defined and you are able to start and stop it. Right click on the project and click &#8220;Run On Server&#8221; option. Tomcat should show some output on the terminal. Follow the same steps you did while testing jetty. You should get the same results as above.</p>
<h3>Congratulations</h3>
<p>You have just configured a simple web application project using archetypes and hosted the application using both the built in web-app server called jetty and Tomcat 6 under eclipse using <a href="http://www.eclipse.org/webtools/" target="_blank">WTP</a>.</p>
<p>You can also try out the following post. <a href="http://wp.me/pvUBW-jt" target="_blank">This is a simpler way to start a Spring MVC application from an archetype</a>.</p>
<h3>Thats all for now!</h3>
</div>]]></content:encoded>
</item>

</channel>
</rss>
