<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <title>Apache Wink : 5.7 Handler Chain - Runtime Extension</title>
	    <link rel="stylesheet" href="styles/site.css" type="text/css" />
        <META http-equiv="Content-Type" content="text/html; charset=UTF-8">	    
    </head>

    <body>
	    <table class="pagecontent" border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#ffffff">
		    <tr>
			    <td valign="top" class="pagebody">
				    <div class="pageheader">
					    <span class="pagetitle">
                            Apache Wink : 5.7 Handler Chain - Runtime Extension
                                                    </span>
				    </div>
				    <div class="pagesubheading">
					    This page last changed on Oct 12, 2009 by <font color="#0050B2">bluk</font>.
				    </div>

				    <h1><a name="5.7HandlerChain-RuntimeExtension-HandlerChainRuntimeExtension"></a>Handler Chain - Runtime Extension</h1>

<p>The Apache Wink runtime utilizes three Handler Chains for the complete processing of a request: Request chain, Response chain and Error chain. A handler receives a MessageContext instance for accessing and manipulating the current request information and a HandlerChain instance for advancing the chain. It is the responsibility of the handler to pass control to the next handler on the chain by invoking the doChain() method on the HandlerChain instance.</p>

<p>A handler may call the doChain() method several times if needed, so handlers are required to consider the possibility they will be invoked more than once for the same request.<br/>
All handler related interfaces reside in the org.apache.wink.server.handlers package.</p>

<p>The implementation of separate chains provides the ability to move up and down one chain before moving on to the next chain. This is particularly useful for the implementation of the JAX-RS resource-method search algorithm that includes invoking sub-resource locators, and implementing the Continued Search mode.</p>

<h2><a name="5.7HandlerChain-RuntimeExtension-Handlers"></a>Handlers</h2>

<p>There are two types of handlers:</p>
<ul>
	<li><b>System Handler -</b> are the handlers that implement the core engine of the Apache Wink runtime. The Apache Wink runtime will not function correctly if any of the system handlers are removed from the chain.</li>
</ul>


<ul>
	<li><b>User Handler -</b> are the handlers that are provided by an application to customize a chains behavior and to add unique functionality to it. User handlers are not part of the core functionality of Apache Wink.</li>
</ul>


<div class='panelMacro'><table class='infoMacro'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="images/icons/emoticons/information.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td><b>Reference</b><br />In order to customize a handler chain refer to section 2 "<b>Apache Wink Building Blocks</b>", <a href="2 Apache Wink Building Blocks.html#2ApacheWinkBuildingBlocks-CustomizationoftheHandlersChain">Customization of the Handlers Chain</a></td></tr></table></div>

<h2><a name="5.7HandlerChain-RuntimeExtension-MessageContext"></a>Message Context</h2>

<p>The MessageContext allows the following:<br/>
Allows handlers to access and manipulate the current request informationAllows handlers to maintain a state by setting attributes on the message context, as the handlers themselves are singletons and therefore statelessAllows handlers to pass information to other handlers on the chain</p>

<h2><a name="5.7HandlerChain-RuntimeExtension-RequestHandlerChain"></a>Request Handler Chain</h2>

<p>The Request Handler Chain is responsible for processing a request according to the JAX-RS specification by accepting the request, searching for the resource method to invoke, de-serializing the request entity and finally for invoking the resource method. It is responsible for invoking sub-resource locators by moving up and down the chain as needed. A Request handler is a class that implements the org.apache.wink.server.handlers.RequestHandler interface.</p>


<h2><a name="5.7HandlerChain-RuntimeExtension-SystemRequestHandlers"></a>System Request Handlers</h2>

<p>The following is a list of system handlers comprising the request handler chain in the order that they appear in the chain.</p>
<table class='confluenceTable'><tbody>
<tr>
<th class='confluenceTh'> Handler </th>
<th class='confluenceTh'> Description </th>
</tr>
<tr>
<td class='confluenceTd'> SearchResultHandler </td>
<td class='confluenceTd'> Responsible for throwing the search result error if there was one during the search for the resource method </td>
</tr>
<tr>
<td class='confluenceTd'> OptionsMethodHandler </td>
<td class='confluenceTd'> Generates a response for an OPTIONS request in case that there is no resource method that is associated with OPTIONS, according to the JAX-RS spec </td>
</tr>
<tr>
<td class='confluenceTd'> HeadMethodHandler </td>
<td class='confluenceTd'> Handles a response for a HEAD request in case that there is no resource method that is associated with HEAD, according to the JAX-RS spec </td>
</tr>
<tr>
<td class='confluenceTd'> FindRootResourceHandler </td>
<td class='confluenceTd'> Locates the root resource that best matches the request </td>
</tr>
<tr>
<td class='confluenceTd'> FindResourceMethodHandler </td>
<td class='confluenceTd'> Locates the actual method to invoke that matches the request, invoking sub-resource locators as needed </td>
</tr>
<tr>
<td class='confluenceTd'> CreateInvocationParametersHandler </td>
<td class='confluenceTd'> Creates the parameters of the resource method to invoke and de-serializes the request entity using the appropriate MessageBodyReader </td>
</tr>
<tr>
<td class='confluenceTd'> InvokeMethodHandler </td>
<td class='confluenceTd'> Invokes the resource method </td>
</tr>
</tbody></table>


<h3><a name="5.7HandlerChain-RuntimeExtension-UserRequestHandlers"></a>User Request Handlers</h3>

<p>User request handlers are inserted before the InvokeMethodHandler handler.</p>

<div class='panelMacro'><table class='infoMacro'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="images/icons/emoticons/information.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td><b>Reference</b><br />In order to customize a handler chain refer to section 2 "<b>Apache Wink Building Blocks</b>", <a href="2 Apache Wink Building Blocks.html#2ApacheWinkBuildingBlocks-CustomizationoftheHandlersChain">Customization of the Handlers Chain</a></td></tr></table></div>

<h2><a name="5.7HandlerChain-RuntimeExtension-ResponseHandlerChain"></a>Response Handler Chain</h2>

<p>The Response Handler Chain is responsible for handling the object returned from invoking a resource method or sub-resource method according to the JAX-RS specification. It is responsible for determining the response status code, selecting the response media type and for serializing the response entity.<br/>
A Response handler is a class that implements the <b>org.apache.wink.server.handlers.ResponseHandler interface.</b></p>



<h3><a name="5.7HandlerChain-RuntimeExtension-SystemResponseHandlers"></a>System Response Handlers</h3>

<p>The following is a list of system handlers comprising the response handler chain in the order that they appear in the chain.</p>
<table class='confluenceTable'><tbody>
<tr>
<th class='confluenceTh'> Handler <br clear="all" /> </th>
<th class='confluenceTh'> Description <br clear="all" /> </th>
</tr>
<tr>
<td class='confluenceTd'> PopulateResponseStatusHandler <br clear="all" /> </td>
<td class='confluenceTd'> Determines the response status code, according to the JAX-RS spec <br clear="all" /> </td>
</tr>
<tr>
<td class='confluenceTd'> PopulateResponseMediaTypeHandler <br clear="all" /> </td>
<td class='confluenceTd'> Determines the response media type, according to the JAX-RS spec <br clear="all" /> </td>
</tr>
<tr>
<td class='confluenceTd'> FlushResultHandler <br clear="all" /> </td>
<td class='confluenceTd'> Serializes the response entity using the appropriate MessageBodyWriter <br clear="all" /> </td>
</tr>
<tr>
<td class='confluenceTd'> HeadMethodHandler <br clear="all" /> </td>
<td class='confluenceTd'> Performs cleanup operations in case that there was no resource method that was associated with HEAD. <br clear="all" /> </td>
</tr>
</tbody></table>

<h3><a name="5.7HandlerChain-RuntimeExtension-UserResponseHandlers"></a>User Response Handlers</h3>

<p>User response handlers are inserted before the FlushResultHandler handler. Apache Wink initializes the user response handler chain with the <b>CheckLocationHeaderHandler</b> handler that verifies that the "<b>Location</b>" response header is present on a response when there is a status code that requires it, for example, status code: 201.</p>

<div class='panelMacro'><table class='infoMacro'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="images/icons/emoticons/information.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td><b>Reference</b><br />In order to customize a handler chain refer to section 2 "<b>Apache Wink Building Blocks</b>", <a href="2 Apache Wink Building Blocks.html#2ApacheWinkBuildingBlocks-CustomizationoftheHandlersChain">Customization of the Handlers Chain</a></td></tr></table></div>

<h2><a name="5.7HandlerChain-RuntimeExtension-ErrorHandlerChain"></a>Error Handler Chain</h2>

<p>The Error Handler Chain is responsible for handling all of the exceptions that are thrown during the invocation of the Request and Response handler chains, according to the JAX-RS specification for handling exceptions. It is responsible for determining the response status code, selecting the response media type and for serializing the response entity.</p>

<p>An Error handler is a class that implements the org.apache.wink.server.handlers.ResponseHandler interface.</p>

<h3><a name="5.7HandlerChain-RuntimeExtension-SystemErrorHandlers"></a>System Error Handlers</h3>

<p>The following is a list of system handlers comprising the error handler chain in the order that they appear in the chain.</p>

<h3><a name="5.7HandlerChain-RuntimeExtension-ErrorHandlers"></a>Error Handlers</h3>

<table class='confluenceTable'><tbody>
<tr>
<th class='confluenceTh'> Handler <br clear="all" /> </th>
<th class='confluenceTh'> Description <br clear="all" /> </th>
</tr>
<tr>
<td class='confluenceTd'> PopulateErrorResponseHandler <br clear="all" /> </td>
<td class='confluenceTd'> Prepares the response entity from a thrown exception according to the JAX-RS specification <br clear="all" /> </td>
</tr>
<tr>
<td class='confluenceTd'> PopulateResponseStatusHandler <br clear="all" /> </td>
<td class='confluenceTd'> Determines the response status code according to the JAX-RS spec <br clear="all" /> </td>
</tr>
<tr>
<td class='confluenceTd'> PopulateResponseMediaTypeHandler <br clear="all" /> </td>
<td class='confluenceTd'> Determines the response media type, according to the JAX-RS spec <br clear="all" /> </td>
</tr>
<tr>
<td class='confluenceTd'> FlushResultHandler <br clear="all" /> </td>
<td class='confluenceTd'> Serializes the response entity using the appropriate MessageBodyWriter <br clear="all" /> </td>
</tr>
</tbody></table>

<h3><a name="5.7HandlerChain-RuntimeExtension-UserErrorHandlers"></a>User Error Handlers</h3>

<p>User error handlers are inserted before the FlushResultHandler handler.</p>

<div class='panelMacro'><table class='infoMacro'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="images/icons/emoticons/information.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td><b>Reference</b><br />In order to customize a handler chain refer to section 2 "<b>Apache Wink Building Blocks</b>", <a href="2 Apache Wink Building Blocks.html#2ApacheWinkBuildingBlocks-CustomizationoftheHandlersChain">Customization of the Handlers Chain</a></td></tr></table></div>

<h2><a name="5.7HandlerChain-RuntimeExtension-RequestProcessing"></a>Request Processing</h2>

<p>The following details how the Apache Wink runtime performs request processing:</p>
<ol>
	<li>Create new instances of the three handler chains. The handlers themselves are singletons.</li>
	<li>Create a new instance of a MessageContext to pass between the handlers.</li>
	<li>Invoke the first handler on the Request chain.</li>
	<li>Once the request chain is complete, invoke the Response chain and pass it the MessageContext that was used in the Request chain.</li>
	<li>Make both chains and the MessageContext available for garbage collection.</li>
</ol>


<p>If at any time during the execution of a Request or Response chain an exception is thrown, catch the exception, wrap it in a new MessageContext instance and invoke the Error chain to produce an appropriate response.</p>

				    
                    			    </td>
		    </tr>
	    </table>
	    <table border="0" cellpadding="0" cellspacing="0" width="100%">
			<tr>
				<td height="12" background="http://cwiki.apache.org/confluence/images/border/border_bottom.gif"><img src="images/border/spacer.gif" width="1" height="1" border="0"/></td>
			</tr>
		    <tr>
			    <td align="center"><font color="grey">Document generated by Confluence on Nov 11, 2009 06:57</font></td>
		    </tr>
	    </table>
    </body>
</html>