PageRenderTime 66ms CodeModel.GetById 14ms RepoModel.GetById 1ms app.codeStats 0ms

/lib/docs/org/apache/xmlrpc/server/RequestProcessorFactoryFactory.html

http://mp-rechnungs-und-kundenverwaltung.googlecode.com/
HTML | 289 lines | 238 code | 30 blank | 21 comment | 0 complexity | 9a4de138c70f881216ff68e5e9d578aa MD5 | raw file
Possible License(s): LGPL-3.0, Apache-2.0, GPL-3.0, GPL-2.0, AGPL-3.0, JSON, BSD-3-Clause
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <!--NewPage-->
  3. <HTML>
  4. <HEAD>
  5. <!-- Generated by javadoc (build 1.6.0_0) on Mon Apr 20 21:46:00 CEST 2009 -->
  6. <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
  7. <TITLE>
  8. RequestProcessorFactoryFactory (Apache XML-RPC 3.1.2 API)
  9. </TITLE>
  10. <META NAME="date" CONTENT="2009-04-20">
  11. <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
  12. <SCRIPT type="text/javascript">
  13. function windowTitle()
  14. {
  15. if (location.href.indexOf('is-external=true') == -1) {
  16. parent.document.title="RequestProcessorFactoryFactory (Apache XML-RPC 3.1.2 API)";
  17. }
  18. }
  19. </SCRIPT>
  20. <NOSCRIPT>
  21. </NOSCRIPT>
  22. </HEAD>
  23. <BODY BGCOLOR="white" onload="windowTitle();">
  24. <HR>
  25. <!-- ========= START OF TOP NAVBAR ======= -->
  26. <A NAME="navbar_top"><!-- --></A>
  27. <A HREF="#skip-navbar_top" title="Skip navigation links"></A>
  28. <TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
  29. <TR>
  30. <TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
  31. <A NAME="navbar_top_firstrow"><!-- --></A>
  32. <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  33. <TR ALIGN="center" VALIGN="top">
  34. <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  35. <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  36. <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  37. <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/RequestProcessorFactoryFactory.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
  38. <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  39. <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  40. <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  41. <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  42. </TR>
  43. </TABLE>
  44. </TD>
  45. <TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
  46. </EM>
  47. </TD>
  48. </TR>
  49. <TR>
  50. <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  51. &nbsp;<A HREF="../../../../org/apache/xmlrpc/server/ReflectiveXmlRpcHandler.html" title="class in org.apache.xmlrpc.server"><B>PREV CLASS</B></A>&nbsp;
  52. &nbsp;<A HREF="../../../../org/apache/xmlrpc/server/RequestProcessorFactoryFactory.RequestProcessorFactory.html" title="interface in org.apache.xmlrpc.server"><B>NEXT CLASS</B></A></FONT></TD>
  53. <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  54. <A HREF="../../../../index.html?org/apache/xmlrpc/server/RequestProcessorFactoryFactory.html" target="_top"><B>FRAMES</B></A> &nbsp;
  55. &nbsp;<A HREF="RequestProcessorFactoryFactory.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
  56. &nbsp;<SCRIPT type="text/javascript">
  57. <!--
  58. if(window==top) {
  59. document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  60. }
  61. //-->
  62. </SCRIPT>
  63. <NOSCRIPT>
  64. <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
  65. </NOSCRIPT>
  66. </FONT></TD>
  67. </TR>
  68. <TR>
  69. <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  70. SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
  71. <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  72. DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
  73. </TR>
  74. </TABLE>
  75. <A NAME="skip-navbar_top"></A>
  76. <!-- ========= END OF TOP NAVBAR ========= -->
  77. <HR>
  78. <!-- ======== START OF CLASS DATA ======== -->
  79. <H2>
  80. <FONT SIZE="-1">
  81. org.apache.xmlrpc.server</FONT>
  82. <BR>
  83. Interface RequestProcessorFactoryFactory</H2>
  84. <DL>
  85. <DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../../org/apache/xmlrpc/server/RequestProcessorFactoryFactory.RequestSpecificProcessorFactoryFactory.html" title="class in org.apache.xmlrpc.server">RequestProcessorFactoryFactory.RequestSpecificProcessorFactoryFactory</A>, <A HREF="../../../../org/apache/xmlrpc/server/RequestProcessorFactoryFactory.StatelessProcessorFactoryFactory.html" title="class in org.apache.xmlrpc.server">RequestProcessorFactoryFactory.StatelessProcessorFactoryFactory</A></DD>
  86. </DL>
  87. <HR>
  88. <DL>
  89. <DT><PRE>public interface <B>RequestProcessorFactoryFactory</B></DL>
  90. </PRE>
  91. <P>
  92. <p>The request processor is the object, which is actually performing
  93. the request. There is nothing magic about the request processor:
  94. It may very well be a POJO. The <A HREF="../../../../org/apache/xmlrpc/server/RequestProcessorFactoryFactory.html" title="interface in org.apache.xmlrpc.server"><CODE>RequestProcessorFactoryFactory</CODE></A>
  95. is passed to the <A HREF="../../../../org/apache/xmlrpc/server/AbstractReflectiveHandlerMapping.html" title="class in org.apache.xmlrpc.server"><CODE>AbstractReflectiveHandlerMapping</CODE></A> at startup.
  96. The mapping uses this factory to create instances of
  97. <A HREF="../../../../org/apache/xmlrpc/server/RequestProcessorFactoryFactory.RequestProcessorFactory.html" title="interface in org.apache.xmlrpc.server"><CODE>RequestProcessorFactoryFactory.RequestProcessorFactory</CODE></A>, which are used to initialize
  98. the <A HREF="../../../../org/apache/xmlrpc/server/ReflectiveXmlRpcHandler.html" title="class in org.apache.xmlrpc.server"><CODE>ReflectiveXmlRpcHandler</CODE></A>. The handler in turn uses its
  99. factory to create the actual request processor when a request comes
  100. in.</p>
  101. <p>However, the question arises, when and how the request processor
  102. is created and whether it needs request specific initialization.
  103. The <A HREF="../../../../org/apache/xmlrpc/server/RequestProcessorFactoryFactory.html" title="interface in org.apache.xmlrpc.server"><CODE>RequestProcessorFactoryFactory</CODE></A> is an object, which makes
  104. that logic pluggable. Unfortunately, we aren't done with a single
  105. factory: We even need a factory for factories. The rationale is
  106. best explained by looking at the different use cases and how to
  107. implement them.</p>
  108. <p>The default <A HREF="../../../../org/apache/xmlrpc/server/RequestProcessorFactoryFactory.html" title="interface in org.apache.xmlrpc.server"><CODE>RequestProcessorFactoryFactory</CODE></A> is the
  109. <A HREF="../../../../org/apache/xmlrpc/server/RequestProcessorFactoryFactory.RequestSpecificProcessorFactoryFactory.html" title="class in org.apache.xmlrpc.server"><CODE>RequestProcessorFactoryFactory.RequestSpecificProcessorFactoryFactory</CODE></A>. It creates a new
  110. processor instance for any request. In other words, it allows the
  111. request processor to have some state. This is fine, if the request
  112. processor is a lightweight object or needs request specific
  113. initialization. In this case, the actual request processor is
  114. created and invoked when
  115. calling <A HREF="../../../../org/apache/xmlrpc/server/RequestProcessorFactoryFactory.RequestProcessorFactory.html#getRequestProcessor(org.apache.xmlrpc.XmlRpcRequest)"><CODE>RequestProcessorFactoryFactory.RequestProcessorFactory.getRequestProcessor(XmlRpcRequest)</CODE></A>.</p>
  116. <p>An alternative implementation is the
  117. <A HREF="../../../../org/apache/xmlrpc/server/RequestProcessorFactoryFactory.StatelessProcessorFactoryFactory.html" title="class in org.apache.xmlrpc.server"><CODE>RequestProcessorFactoryFactory.StatelessProcessorFactoryFactory</CODE></A>, which may be used to
  118. create stateless request processors. Stateless request processors
  119. are typically heavyweight objects, which have an expensive
  120. initialization phase. The processor factory, which is created by
  121. <A HREF="../../../../org/apache/xmlrpc/server/RequestProcessorFactoryFactory.html#getRequestProcessorFactory(java.lang.Class)"><CODE>getRequestProcessorFactory(Class pClass)</CODE></A> contains an
  122. initialized singleton, which is returned by
  123. <A HREF="../../../../org/apache/xmlrpc/server/RequestProcessorFactoryFactory.RequestProcessorFactory.html#getRequestProcessor(org.apache.xmlrpc.XmlRpcRequest)"><CODE>RequestProcessorFactoryFactory.RequestProcessorFactory.getRequestProcessor(XmlRpcRequest)</CODE></A>.</p>
  124. <p>Other alternatives might be a
  125. <A HREF="../../../../org/apache/xmlrpc/server/RequestProcessorFactoryFactory.html" title="interface in org.apache.xmlrpc.server"><CODE>RequestProcessorFactoryFactory</CODE></A>, which maintains a pool
  126. of <A HREF="../../../../org/apache/xmlrpc/server/RequestProcessorFactoryFactory.RequestProcessorFactory.html" title="interface in org.apache.xmlrpc.server"><CODE>RequestProcessorFactoryFactory.RequestProcessorFactory</CODE></A> instances. The instances are
  127. configured by calling
  128. <A HREF="../../../../org/apache/xmlrpc/server/RequestProcessorFactoryFactory.RequestProcessorFactory.html#getRequestProcessor(org.apache.xmlrpc.XmlRpcRequest)"><CODE>RequestProcessorFactoryFactory.RequestProcessorFactory.getRequestProcessor(XmlRpcRequest)</CODE></A>.</p>
  129. <P>
  130. <P>
  131. <HR>
  132. <P>
  133. <!-- ======== NESTED CLASS SUMMARY ======== -->
  134. <A NAME="nested_class_summary"><!-- --></A>
  135. <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
  136. <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
  137. <TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
  138. <B>Nested Class Summary</B></FONT></TH>
  139. </TR>
  140. <TR BGCOLOR="white" CLASS="TableRowColor">
  141. <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
  142. <CODE>static&nbsp;interface</CODE></FONT></TD>
  143. <TD><CODE><B><A HREF="../../../../org/apache/xmlrpc/server/RequestProcessorFactoryFactory.RequestProcessorFactory.html" title="interface in org.apache.xmlrpc.server">RequestProcessorFactoryFactory.RequestProcessorFactory</A></B></CODE>
  144. <BR>
  145. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This is the factory for request processors.</TD>
  146. </TR>
  147. <TR BGCOLOR="white" CLASS="TableRowColor">
  148. <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
  149. <CODE>static&nbsp;class</CODE></FONT></TD>
  150. <TD><CODE><B><A HREF="../../../../org/apache/xmlrpc/server/RequestProcessorFactoryFactory.RequestSpecificProcessorFactoryFactory.html" title="class in org.apache.xmlrpc.server">RequestProcessorFactoryFactory.RequestSpecificProcessorFactoryFactory</A></B></CODE>
  151. <BR>
  152. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This is the default implementation of <A HREF="../../../../org/apache/xmlrpc/server/RequestProcessorFactoryFactory.html" title="interface in org.apache.xmlrpc.server"><CODE>RequestProcessorFactoryFactory</CODE></A>.</TD>
  153. </TR>
  154. <TR BGCOLOR="white" CLASS="TableRowColor">
  155. <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
  156. <CODE>static&nbsp;class</CODE></FONT></TD>
  157. <TD><CODE><B><A HREF="../../../../org/apache/xmlrpc/server/RequestProcessorFactoryFactory.StatelessProcessorFactoryFactory.html" title="class in org.apache.xmlrpc.server">RequestProcessorFactoryFactory.StatelessProcessorFactoryFactory</A></B></CODE>
  158. <BR>
  159. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This is an alternative implementation of <A HREF="../../../../org/apache/xmlrpc/server/RequestProcessorFactoryFactory.html" title="interface in org.apache.xmlrpc.server"><CODE>RequestProcessorFactoryFactory</CODE></A>.</TD>
  160. </TR>
  161. </TABLE>
  162. &nbsp;
  163. <!-- ========== METHOD SUMMARY =========== -->
  164. <A NAME="method_summary"><!-- --></A>
  165. <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
  166. <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
  167. <TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
  168. <B>Method Summary</B></FONT></TH>
  169. </TR>
  170. <TR BGCOLOR="white" CLASS="TableRowColor">
  171. <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
  172. <CODE>&nbsp;<A HREF="../../../../org/apache/xmlrpc/server/RequestProcessorFactoryFactory.RequestProcessorFactory.html" title="interface in org.apache.xmlrpc.server">RequestProcessorFactoryFactory.RequestProcessorFactory</A></CODE></FONT></TD>
  173. <TD><CODE><B><A HREF="../../../../org/apache/xmlrpc/server/RequestProcessorFactoryFactory.html#getRequestProcessorFactory(java.lang.Class)">getRequestProcessorFactory</A></B>(java.lang.Class&nbsp;pClass)</CODE>
  174. <BR>
  175. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method is invoked at startup.</TD>
  176. </TR>
  177. </TABLE>
  178. &nbsp;
  179. <P>
  180. <!-- ============ METHOD DETAIL ========== -->
  181. <A NAME="method_detail"><!-- --></A>
  182. <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
  183. <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
  184. <TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
  185. <B>Method Detail</B></FONT></TH>
  186. </TR>
  187. </TABLE>
  188. <A NAME="getRequestProcessorFactory(java.lang.Class)"><!-- --></A><H3>
  189. getRequestProcessorFactory</H3>
  190. <PRE>
  191. <A HREF="../../../../org/apache/xmlrpc/server/RequestProcessorFactoryFactory.RequestProcessorFactory.html" title="interface in org.apache.xmlrpc.server">RequestProcessorFactoryFactory.RequestProcessorFactory</A> <B>getRequestProcessorFactory</B>(java.lang.Class&nbsp;pClass)
  192. throws <A HREF="../../../../org/apache/xmlrpc/XmlRpcException.html" title="class in org.apache.xmlrpc">XmlRpcException</A></PRE>
  193. <DL>
  194. <DD>This method is invoked at startup. It creates a factory for instances of
  195. <code>pClass</code>.
  196. <P>
  197. <DD><DL>
  198. <DT><B>Throws:</B>
  199. <DD><CODE><A HREF="../../../../org/apache/xmlrpc/XmlRpcException.html" title="class in org.apache.xmlrpc">XmlRpcException</A></CODE></DL>
  200. </DD>
  201. </DL>
  202. <!-- ========= END OF CLASS DATA ========= -->
  203. <HR>
  204. <!-- ======= START OF BOTTOM NAVBAR ====== -->
  205. <A NAME="navbar_bottom"><!-- --></A>
  206. <A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
  207. <TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
  208. <TR>
  209. <TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
  210. <A NAME="navbar_bottom_firstrow"><!-- --></A>
  211. <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  212. <TR ALIGN="center" VALIGN="top">
  213. <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  214. <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  215. <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  216. <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/RequestProcessorFactoryFactory.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
  217. <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  218. <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  219. <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  220. <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  221. </TR>
  222. </TABLE>
  223. </TD>
  224. <TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
  225. </EM>
  226. </TD>
  227. </TR>
  228. <TR>
  229. <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  230. &nbsp;<A HREF="../../../../org/apache/xmlrpc/server/ReflectiveXmlRpcHandler.html" title="class in org.apache.xmlrpc.server"><B>PREV CLASS</B></A>&nbsp;
  231. &nbsp;<A HREF="../../../../org/apache/xmlrpc/server/RequestProcessorFactoryFactory.RequestProcessorFactory.html" title="interface in org.apache.xmlrpc.server"><B>NEXT CLASS</B></A></FONT></TD>
  232. <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  233. <A HREF="../../../../index.html?org/apache/xmlrpc/server/RequestProcessorFactoryFactory.html" target="_top"><B>FRAMES</B></A> &nbsp;
  234. &nbsp;<A HREF="RequestProcessorFactoryFactory.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
  235. &nbsp;<SCRIPT type="text/javascript">
  236. <!--
  237. if(window==top) {
  238. document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  239. }
  240. //-->
  241. </SCRIPT>
  242. <NOSCRIPT>
  243. <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
  244. </NOSCRIPT>
  245. </FONT></TD>
  246. </TR>
  247. <TR>
  248. <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  249. SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
  250. <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  251. DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
  252. </TR>
  253. </TABLE>
  254. <A NAME="skip-navbar_bottom"></A>
  255. <!-- ======== END OF BOTTOM NAVBAR ======= -->
  256. <HR>
  257. Copyright &#169; 2001-2009 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.
  258. </BODY>
  259. </HTML>