blob: eea1c64f9e09a22784a2aebd5f5918055482eec1 [file] [log] [blame]
<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Working CVS and SSH under Windows</title><link href="default.css" rel="stylesheet"><link href="/images/favicon.ico" rel="SHORTCUT ICON"></head><body marginwidth="0" marginheight="0" leftmargin="0" bottommargin="0" topmargin="0" vlink="#6763a9" link="#6763a9" bgcolor="#ffffff"><a name="top"></a><table height="400" width="712" cellspacing="0" cellpadding="0" border="0"><tr><td bgcolor="#7270c2" align="left" valign="top" width="20"><img border="0" height="1" width="1" src="images/dotTrans.gif"></td><td bgcolor="#7270c2" align="left" valign="top" width="95"><img border="0" height="1" width="1" src="images/dotTrans.gif"></td><td align="left" valign="top" width="7"><img height="1" width="1" border="0" src="images/dotTrans.gif"></td><td align="left" valign="top" width="40"><img border="0" height="6" width="40" src="images/dotTrans.gif"></td><td bgcolor="#5A5CB8" align="left" valign="top" width="430"><img border="0" height="6" width="430" src="images/top_2.gif"></td><td bgcolor="#E24717" align="left" valign="top" width="120"><img src="images/top_3.gif" width="120" height="6" border="0"></td></tr><tr><td align="left" valign="top" bgcolor="#7270c2" width="20"><img height="1" width="1" border="0" src="images/dotTrans.gif"></td><td align="left" valign="top" bgcolor="#7270c2" width="95"><img height="1" width="1" border="0" src="images/dotTrans.gif"></td><td align="left" valign="top" bgcolor="#ffffff" width="7"></td><td align="left" valign="top" width="40"><img border="0" height="1" width="1" src="images/dotTrans.gif"></td><td align="left" valign="middle" width="430"><a href="faq.html"><span class="menuTopOff">[ f a q ]</span></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://wiki.codehaus.org/openejb"><span class="menuTopOff">[ w i k i ]</span></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://archive.openejb.codehaus.org/user/"><span class="menuTopOff">[ l i s t s ]</span></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://cvs.openejb.org/"><span class="menuTopOff">[ c v s ]</span></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://jira.codehaus.org/secure/BrowseProject.jspa?id=10401"><span class="menuTopOff">[ b u g s ]</span></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img border="0" height="2" width="1" src="images/dotTrans.gif"></td><td align="left" valign="top" height="20" width="120">&nbsp;</td></tr><tr><td align="left" valign="top" bgcolor="#7270c2" width="20"><img border="0" height="3" width="20" src="images/dotTrans.gif"></td><td align="left" valign="top" bgcolor="#7270c2" width="95"><img border="0" height="3" width="105" src="images/line_sm.gif"></td><td align="left" valign="top" bgcolor="#a9a5de" width="7"><img border="0" height="3" width="7" src="images/line_sm.gif"></td><td align="left" valign="top" width="40"><img border="0" height="3" width="40" src="images/line_light.gif"></td><td align="left" valign="top" width="430"><img border="0" height="3" width="430" src="images/line_light.gif"></td><td align="left" valign="top" width="120"><img height="1" width="1" border="0" src="images/dotTrans.gif"></td></tr><tr><td align="left" valign="top" bgcolor="#7270c2"><img border="0" height="10" width="20" src="images/dotTrans.gif"></td><td align="left" valign="top" bgcolor="#7270c2" width="95"><img border="0" height="2" width="1" src="images/dotTrans.gif"><br><table cellspacing="0" cellpadding="0" border="0"><tr><td align="left" valign="top"><span class="subMenuOn">Main</span></td></tr><tr><td align="left" valign="top"><a href="index.html"><span class="subMenuOff">&nbsp;&nbsp;&nbsp;
Welcome!</span></a></td></tr><tr><td align="left" valign="top"><a href="download.html"><span class="subMenuOff">&nbsp;&nbsp;&nbsp;
Download</span></a></td></tr><tr><td align="left" valign="top"><a href="lists.html"><span class="subMenuOff">&nbsp;&nbsp;&nbsp;
Mailing Lists</span></a></td></tr><tr><td align="left" valign="top"><a href="cvs.html"><span class="subMenuOff">&nbsp;&nbsp;&nbsp;
Source Code</span></a></td></tr><tr><td align="left" valign="top"><a href="contributors.html"><span class="subMenuOff">&nbsp;&nbsp;&nbsp;
The Team</span></a></td></tr><tr><td align="left" valign="top"><a href="status.html"><span class="subMenuOff">&nbsp;&nbsp;&nbsp;
Status</span></a></td></tr></table><table cellspacing="0" cellpadding="0" border="0"><tr><td align="left" valign="top"><span class="subMenuOn">Users</span></td></tr><tr><td align="left" valign="top"><a href="quickstart.html"><span class="subMenuOff">&nbsp;&nbsp;&nbsp;
Quickstart</span></a></td></tr><tr><td align="left" valign="top"><a href="hello-world.html"><span class="subMenuOff">&nbsp;&nbsp;&nbsp;
Hello World!</span></a></td></tr><tr><td align="left" valign="top"><a href="cmp_entity_postgresql.html"><span class="subMenuOff">&nbsp;&nbsp;&nbsp;
CMP Example</span></a></td></tr><tr><td align="left" valign="top"><a href="cmp_guide.html"><span class="subMenuOff">&nbsp;&nbsp;&nbsp;
CMP Guide</span></a></td></tr><tr><td align="left" valign="top"><a href="deploy.html"><span class="subMenuOff">&nbsp;&nbsp;&nbsp;
Deploy</span></a></td></tr><tr><td align="left" valign="top"><a href="start-command.html"><span class="subMenuOff">&nbsp;&nbsp;&nbsp;
Startup</span></a></td></tr><tr><td align="left" valign="top"><a href="validate.html"><span class="subMenuOff">&nbsp;&nbsp;&nbsp;
Validation</span></a></td></tr><tr><td align="left" valign="top"><a href="config_containers.html"><span class="subMenuOff">&nbsp;&nbsp;&nbsp;
Configuration</span></a></td></tr><tr><td align="left" valign="top"><a href="properties.html"><span class="subMenuOff">&nbsp;&nbsp;&nbsp;
Properties</span></a></td></tr></table><table cellspacing="0" cellpadding="0" border="0"><tr><td align="left" valign="top"><span class="subMenuOn">Servers</span></td></tr><tr><td align="left" valign="top"><a href="embedded.html"><span class="subMenuOff">&nbsp;&nbsp;&nbsp;
Local Server</span></a></td></tr><tr><td align="left" valign="top"><a href="remote-server.html"><span class="subMenuOff">&nbsp;&nbsp;&nbsp;
Remote Server</span></a></td></tr><tr><td align="left" valign="top"><a href="tomcat.html"><span class="subMenuOff">&nbsp;&nbsp;&nbsp;
Tomcat</span></a></td></tr><tr><td align="left" valign="top"><a href="geronimo.html"><span class="subMenuOff">&nbsp;&nbsp;&nbsp;
Geronimo</span></a></td></tr></table><table cellspacing="0" cellpadding="0" border="0"><tr><td align="left" valign="top"><span class="subMenuOn">Integrators</span></td></tr><tr><td align="left" valign="top"><a href="whyopenejb.html"><span class="subMenuOff">&nbsp;&nbsp;&nbsp;
Why OpenEJB</span></a></td></tr><tr><td align="left" valign="top"><a href="containersystem.html"><span class="subMenuOff">&nbsp;&nbsp;&nbsp;
Overview</span></a></td></tr><tr><td align="left" valign="top"><a href="design_openejb.html"><span class="subMenuOff">&nbsp;&nbsp;&nbsp;
Design</span></a></td></tr><tr><td align="left" valign="top"><a href="OpenEJB_presentaion.ppt"><span class="subMenuOff">&nbsp;&nbsp;&nbsp;
Presentation</span></a></td></tr></table><img border="0" height="15" width="1" src="images/dotTrans.gif"><br><img border="0" height="3" width="105" src="images/line_sm.gif"><br><A href="http://codehaus.org"><IMG alt="The Codehaus" border="0" height="17" width="88" src="http://www.openejb.org/codehaus-smaller.png"></A></td><td align="left" valign="top" bgcolor="#a9a5de" width="7">&nbsp;</td><td align="left" valign="top" width="40">&nbsp;</td><td valign="top" width="430" rowspan="4"><table width="430" cellspacing="0" cellpadding="0" border="0" rows="2" cols="1"><tr><td align="left" valign="top"><br><img width="200" vspace="0" src="./images/logo_ejb2.gif" hspace="0" height="55" border="0"><br><img src="images/dotTrans.gif" hspace="0" height="7" border="0"><br><span class="pageTitle">Working CVS and SSH under Windows</span><br><img src="images/dotTrans.gif" hspace="0" height="1" border="0"></td></tr></table><p></p><p></p><br><span class="toc"><a href="#Abstract">Abstract</a><br></span><span class="toc"><a href="#Installing the PuTTY program">Installing the PuTTY program</a><br></span><span class="toc"><img border="0" height="1" width="15" src="images/dotTrans.gif"><a href="#Including your PuTTY binaries in your default PATH">Including your PuTTY binaries in your default PATH</a><br></span><span class="toc"><img border="0" height="1" width="15" src="images/dotTrans.gif"><a href="#How to generate your public/private RSA key">How to generate your public/private RSA key</a><br></span><span class="toc"><img border="0" height="1" width="30" src="images/dotTrans.gif"><a href="#A word from the wise (security note)">A word from the wise (security note)</a><br></span><span class="toc"><img border="0" height="1" width="30" src="images/dotTrans.gif"><a href="#How to install the public key on the SF system">How to install the public key on the SF system</a><br></span><span class="toc"><img border="0" height="1" width="45" src="images/dotTrans.gif"><a href="#Installing your public key manually">Installing your public key manually</a><br></span><span class="toc"><img border="0" height="1" width="45" src="images/dotTrans.gif"><a href="#Installing your public key using the SF upload form">Installing your public key using the SF upload form</a><br></span><span class="toc"><img border="0" height="1" width="30" src="images/dotTrans.gif"><a href="#How to start and configure the PuTTY SSH agent">How to start and configure the PuTTY SSH agent</a><br></span><span class="toc"><img border="0" height="1" width="45" src="images/dotTrans.gif"><a href="#How to add a private key to the PuTTY SSH agent">How to add a private key to the PuTTY SSH agent</a><br></span><span class="toc"><img border="0" height="1" width="45" src="images/dotTrans.gif"><a href="#Testing your private/public keys">Testing your private/public keys</a><br></span><span class="toc"><img border="0" height="1" width="45" src="images/dotTrans.gif"><a href="#A word from the wise (security note)">A word from the wise (security note)</a><br></span><span class="toc"><a href="#Configuring WinCVS to work with SSH (PuTTY)">Configuring WinCVS to work with SSH (PuTTY)</a><br></span><span class="toc"><img border="0" height="1" width="15" src="images/dotTrans.gif"><a href="#Making changes to the CVSROOT variable">Making changes to the CVSROOT variable</a><br></span><span class="toc"><img border="0" height="1" width="15" src="images/dotTrans.gif"><a href="#Additional but important WinCVS options">Additional but important WinCVS options</a><br></span><br><a name="Abstract"><h2>Abstract</h2></a>
<a name="Installing the PuTTY program"><h2>Installing the PuTTY program</h2></a>
<p><span class="bodyBlack">
PuTTY is a fully featured SSH client for Windows operation systems.
PuTTY is available from the PuTTY <a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html">web site</a>.
</span></p>
<p><span class="bodyBlack">
Note: You need a couple of binaries, the PuTTY program itself
is not enough.
<table cellspacing="2" cellpadding="2" border="0"><tr><td height="5" colspan="2"></td></tr><span class="bodyGrey">
<tr><td width="10" valign="top" align="left"><img src="images/grayDot.gif"></td><td valign="top" align="left"><span class="bodyBlack">PuTTY.exe - The SSH client</span></td></tr>
<tr><td width="10" valign="top" align="left"><img src="images/grayDot.gif"></td><td valign="top" align="left"><span class="bodyBlack">PSCP.exe - A secure copy program</span></td></tr>
<tr><td width="10" valign="top" align="left"><img src="images/grayDot.gif"></td><td valign="top" align="left"><span class="bodyBlack">PLINK.exe - a command-line interface to the PuTTY back ends</span></td></tr>
<tr><td width="10" valign="top" align="left"><img src="images/grayDot.gif"></td><td valign="top" align="left"><span class="bodyBlack">PAGEANT.exe - an SSH authentication agent for PuTTY, PSCP and Plink</span></td></tr>
</span></table>
</span></p>
<a name="Including your PuTTY binaries in your default PATH"><h3>Including your PuTTY binaries in your default PATH</h3></a>
<p><span class="bodyBlack">
You have to include the PuTTY binaries mentioned above in
your system's default PATH. To do so add the path to your
PuTTY binaries like the ollowing the your system's PATH
environment variable.
<span class="bodyGrey"><pre>
set PATH=C:\PROGRAM FILES\PUTTY;%PATH%
</pre></span>
Note: This is just an example!
</span></p>
<p><span class="bodyBlack">
To test your PuTTY installation, you can try to type the following
command at the command prompt of a dos box.
<span class="bodyGrey"><pre>
plink [developername]@shell.sourceforge.net
</pre></span>
Change [developername] to your SF developer name. If the command
succeeds you should be able to login to the SF system.
</span></p>
<p><span class="bodyBlack">
<img src="images/plink_one.gif" alt="first access to a SF server using plink" border="0">
<hr noshadow="" size="1"><span class="bodyGrey">Figure 1: Accessing the SF server without having a public key installed on it.<hr noshadow="" size="1"></span>
</span></p>
<a name="How to generate your public/private RSA key"><h3>How to generate your public/private RSA key</h3></a>
<p><span class="bodyBlack">
SSH works with a private/public asymetric key scheme like it does
PGP or other asymetric krypto systems. This fact requires that
you generate a public/private key pair to use WinCVS with SSH (PuTTY).
</span></p>
<p><span class="bodyBlack">
Generating these keys using the PuTTY key generator (PUTTYGEN.exe) is pretty easy.
Just press 'generate' and move your mouse over the blank area until the key
gets generated.
</span></p>
<p><span class="bodyBlack">
After the procedure has finished you have to save the private/public key
pair in a _SECURE_ place on your system by using the 'save public/private'
buttons.
</span></p>
<p><span class="bodyBlack">
Usually the private key is named ...
<span class="bodyGrey"><pre>
identity
</pre></span>
and the public key is named ...
<span class="bodyGrey"><pre>
identity.pub
</pre></span>
</span></p>
<p><span class="bodyBlack">
<img src="images/keygen.gif" alt="generating a public/private key pair" border="0">
<hr noshadow="" size="1"><span class="bodyGrey">Figure 2: The PuTTYgen program to generate a public/private key pair.<hr noshadow="" size="1"></span>
</span></p>
<a name="A word from the wise (security note)"><h4>A word from the wise (security note)</h4></a>
<p><span class="bodyBlack">
The private key should _NEVER_ leave your system! Keep it as private
as possible!
</span></p>
<a name="How to install the public key on the SF system"><h4>How to install the public key on the SF system</h4></a>
<a name="Installing your public key manually"><h5>Installing your public key manually</h5></a>
<p><span class="bodyBlack">
The following section is just to demonstrate how the SSH
public/private key system works. To get the public key installed
on the SF OpenEJB CVS server you have to use SF's web based form
for submiting public RSA keys.
</span></p>
<p><span class="bodyBlack">
If you want to install your public key manually on one of the SF
servers, you have to perform a few steps.
<table cellspacing="2" cellpadding="2" border="0"><tr><td height="5" colspan="2"></td></tr><span class="bodyGrey">
<tr><td width="10" valign="top" align="left"><img src="images/grayDot.gif"></td><td valign="top" align="left"><span class="bodyBlack">copy your key onto the SF server using secure copy</span></td></tr>
<tr><td width="10" valign="top" align="left"><img src="images/grayDot.gif"></td><td valign="top" align="left"><span class="bodyBlack">logon the SF server using plink</span></td></tr>
<tr><td width="10" valign="top" align="left"><img src="images/grayDot.gif"></td><td valign="top" align="left"><span class="bodyBlack">creating a .ssh directory.
</span></td></tr>
<tr><td width="10" valign="top" align="left"><img src="images/grayDot.gif"></td><td valign="top" align="left"><span class="bodyBlack">moving your public key in this newly created directory</span></td></tr>
</span></table>
</span></p>
<p><span class="bodyBlack">
The two figures below illustrate the processes described above.
</span></p>
<p><span class="bodyBlack">
<img src="images/using_pscp.gif" alt="using PuTTY secure copy" border="0">
<hr noshadow="" size="1"><span class="bodyGrey">Figure 3: The PuTTYgen secure copy program to copy files in a secure manner.<hr noshadow="" size="1"></span>
</span></p>
<p><span class="bodyBlack">
<img src="images/installing_key.gif" alt="installing the public key on a SF server" border="0">
<hr noshadow="" size="1"><span class="bodyGrey">Figure 4: A few steps to a fully working SSH enabled SF account.<hr noshadow="" size="1"></span>
</span></p>
<a name="Installing your public key using the SF upload form"><h5>Installing your public key using the SF upload form</h5></a>
<p><span class="bodyBlack">
The SF upload form for public RSA/DSA keys can be found at your account
options page of your SF personal page.
</span></p>
<p><span class="bodyBlack">
If you are using the SF web based form, your public key gets distributed
within six hours to the following systems.
<table cellspacing="2" cellpadding="2" border="0"><tr><td height="5" colspan="2"></td></tr><span class="bodyGrey">
<tr><td width="10" valign="top" align="left"><img src="images/grayDot.gif"></td><td valign="top" align="left"><span class="bodyBlack">The OpenEJB home server (www.openejb.org)</span></td></tr>
<tr><td width="10" valign="top" align="left"><img src="images/grayDot.gif"></td><td valign="top" align="left"><span class="bodyBlack">The SF shell server (shell.sf.net)</span></td></tr>
<tr><td width="10" valign="top" align="left"><img src="images/grayDot.gif"></td><td valign="top" align="left"><span class="bodyBlack">The OpenEJB CVS server at Codehaus (cvs.openejb.codehaus.org)</span></td></tr>
</span></table>
</span></p>
<p><span class="bodyBlack">
<img src="images/sf_key_upload.gif" alt="installing the public key using the SF upload page" border="0">
<hr noshadow="" size="1"><span class="bodyGrey">Figure 5: Here we go - The already mentioned SF upload page for public keys.<hr noshadow="" size="1"></span>
</span></p>
<a name="How to start and configure the PuTTY SSH agent"><h4>How to start and configure the PuTTY SSH agent</h4></a>
<p><span class="bodyBlack">
The PuTTY SSH agent manages all your private RSA/DSA keys.
</span></p>
<p><span class="bodyBlack">
Launching the PuTTY SSH agent is very easy - just execute the
program 'PAGEANT.exe'. After starting the agent a new icon should
reside in your system tray.
</span></p>
<a name="How to add a private key to the PuTTY SSH agent"><h5>How to add a private key to the PuTTY SSH agent</h5></a>
<p><span class="bodyBlack">
By openeing the PuTTY SSH agent you are able to add your private
RSA/DSA key. Be carefull you have to use your private key (identity)!
</span></p>
<p><span class="bodyBlack">
From now on the PuTTY SSH agent will log you in to any remote
system which has your public key installed on it. No need to type passwords
any more.
</span></p>
<p><span class="bodyBlack">
<img src="images/pageant.gif" alt="adding privat keys to the PuTTY SSH agent" border="0">
<hr noshadow="" size="1"><span class="bodyGrey">Figure 6: The PuTTY SSH agent with a allready installed private key.<hr noshadow="" size="1"></span>
</span></p>
<p><span class="bodyBlack">
<img src="images/pageant_tray.gif" alt="pageant residing in your system tray" border="0">
<hr noshadow="" size="1"><span class="bodyGrey">Figure 7: The PuTTY SSH agent is allways accessable due to this system tray icon.<hr noshadow="" size="1"></span>
</span></p>
<a name="Testing your private/public keys"><h5>Testing your private/public keys</h5></a>
<p><span class="bodyBlack">
</span></p>
<p><span class="bodyBlack">
<img src="images/plink_two.gif" alt="Using plink in conjunction with pageant" border="0">
<hr noshadow="" size="1"><span class="bodyGrey">Figure 8: Using Plink without the need of providing a password.<hr noshadow="" size="1"></span>
</span></p>
<a name="A word from the wise (security note)"><h5>A word from the wise (security note)</h5></a>
<p><span class="bodyBlack">
Never leave your computer alone while running the PuTTY SSH agent!
With the use of this agent, everybody might login to the SF servers
without even having to know your password.
</span></p>
<a name="Configuring WinCVS to work with SSH (PuTTY)"><h2>Configuring WinCVS to work with SSH (PuTTY)</h2></a>
<p><span class="bodyBlack">
There are just a few steps left until you will have a fully working CVS/SSH couple ;-)
</span></p>
<a name="Making changes to the CVSROOT variable"><h3>Making changes to the CVSROOT variable</h3></a>
<p><span class="bodyBlack">
If you want to use WinCVS in conjunction with SSH you have to use
the SSH authentication method (aka :ext)
The figure below shows my basic WinCVS settings.
</span></p>
<p><span class="bodyBlack">
<img src="images/cvs_basic.gif" alt="basic changes to WinCVS" border="0">
<hr noshadow="" size="1"><span class="bodyGrey">Figure 9: These are the basic settings wich have to be set inside WinCVS.<hr noshadow="" size="1"></span>
</span></p>
<a name="Additional but important WinCVS options"><h3>Additional but important WinCVS options</h3></a>
<p><span class="bodyBlack">
Finally you have to provide the SSH binary which should be used by
WinCVS. In our case this is PLINK.exe.
</span></p>
<p><span class="bodyBlack">
<img src="images/cvs_advanced.gif" alt="advanced WinCVS settings" border="0">
<hr noshadow="" size="1"><span class="bodyGrey">Figure 10: Providing the SSH binary to WinCVS.<hr noshadow="" size="1"></span>
</span></p>
<p><span class="bodyBlack">
From now on you should be able to work with CVS using SSH as you
did earlier without SSH.
</span></p>
</td><td align="left" valign="top" height="5" width="120">
&nbsp;
</td></tr><tr height="5"><td align="left" valign="top" bgcolor="#7270c2" height="5" width="20">&nbsp;</td><td valign="top" bgcolor="#7270c2" height="5" width="95">&nbsp;</td><td align="left" valign="top" bgcolor="#a9a5de" height="5" width="7">&nbsp;</td><td align="left" valign="top" height="5" width="40">&nbsp;</td><td align="left" valign="top" height="5" width="120">&nbsp;</td></tr><tr><td align="left" valign="top" bgcolor="#7270c2" height="5" width="20">&nbsp;</td><td align="left" valign="top" bgcolor="#7270c2" width="95">&nbsp;</td><td align="left" valign="top" bgcolor="#a9a5de" width="7"><img border="0" height="25" width="1" src="images/dotTrans.gif"></td><td align="left" valign="top" width="40"><img border="0" height="25" width="1" src="images/dotTrans.gif"></td><td align="left" valign="top" width="120">&nbsp;</td></tr><tr height="5"><td align="left" valign="bottom" bgcolor="#7270c2" height="100%" rowspan="2" width="20"><img border="0" height="125" width="20" src="images/stripes1.gif"></td><td align="left" valign="bottom" bgcolor="#7270c2" height="100%" rowspan="2" width="95"><img border="0" height="125" width="105" src="images/stripe105.gif"></td><td align="left" valign="top" bgcolor="#a9a5de" height="100%" rowspan="2" width="7">&nbsp;</td><td align="left" valign="top" height="100%" width="40">&nbsp;</td><td align="left" valign="top" height="100%" width="120">&nbsp;</td></tr><tr height="5"><td align="left" valign="top" height="25" width="40">&nbsp;</td><td align="left" valign="bottom" height="25" width="430"><br><br><img height="3" width="430" border="0" src="images/line_light.gif"><br><p></p><span class="bodyGrey"><small><notice>
OpenEJB is a trademark of the OpenEJB Group.
Java, EJB, JDBC, JNDI, JTA, Sun, Sun Microsystems are trademarks or registered
trademarks of Sun Microsystems, Inc. in the United States and in other
countries. XML, XML Schema, XSLT and related standards are trademarks or registered
trademarks of MIT, INRIA, Keio or others, and a product of the World Wide Web
Consortium. All other product names mentioned herein are trademarks of their respective
owners.
</notice><br>&nbsp;<br></small></span><p></p>
&nbsp;
</td><td align="left" valign="top" height="25" width="120">&nbsp;</td></tr></table></body></html>