You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juneau.apache.org by ja...@apache.org on 2017/08/14 00:27:53 UTC

[17/25] incubator-juneau-website git commit: Add @RestHook support.

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/84931d4d/content/site/apidocs/org/apache/juneau/rest/annotation/HookEvent.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/rest/annotation/HookEvent.html b/content/site/apidocs/org/apache/juneau/rest/annotation/HookEvent.html
new file mode 100644
index 0000000..fa47233
--- /dev/null
+++ b/content/site/apidocs/org/apache/juneau/rest/annotation/HookEvent.html
@@ -0,0 +1,783 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>HookEvent (Apache Juneau (incubating) 6.3.2-incubating-SNAPSHOT)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../javadoc.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="HookEvent (Apache Juneau (incubating) 6.3.2-incubating-SNAPSHOT)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/juneau/rest/annotation/Header.html" title="annotation in org.apache.juneau.rest.annotation"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/juneau/rest/annotation/HtmlDoc.html" title="annotation in org.apache.juneau.rest.annotation"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/juneau/rest/annotation/HookEvent.html" target="_top">Frames</a></li>
+<li><a href="HookEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.juneau.rest.annotation</div>
+<h2 title="Enum HookEvent" class="title">Enum HookEvent</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a>&lt;<a href="../../../../../org/apache/juneau/rest/annotation/HookEvent.html" title="enum in org.apache.juneau.rest.annotation">HookEvent</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.juneau.rest.annotation.HookEvent</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;<a href="../../../../../org/apache/juneau/rest/annotation/HookEvent.html" title="enum in org.apache.juneau.rest.annotation">HookEvent</a>&gt;</dd>
+</dl>
+<hr>
+<br>
+<pre>public enum <a href="../../../../../src-html/org/apache/juneau/rest/annotation/HookEvent.html#line.34">HookEvent</a>
+extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&lt;<a href="../../../../../org/apache/juneau/rest/annotation/HookEvent.html" title="enum in org.apache.juneau.rest.annotation">HookEvent</a>&gt;</pre>
+<div class="block">Identifies servlet and REST call lifecycle events which cause <a href="../../../../../org/apache/juneau/rest/annotation/RestHook.html" title="annotation in org.apache.juneau.rest.annotation"><code>@RestHook</code></a>-annotated Java methods
+ to be called.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.summary">
+<!--   -->
+</a>
+<h3>Enum Constant Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation">
+<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Enum Constant and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/juneau/rest/annotation/HookEvent.html#DESTROY">DESTROY</a></span></code>
+<div class="block">Identifies a method that gets called during servlet destroy.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/juneau/rest/annotation/HookEvent.html#END_CALL">END_CALL</a></span></code>
+<div class="block">Identifies a method that gets called right before we exit the servlet service method.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/juneau/rest/annotation/HookEvent.html#INIT">INIT</a></span></code>
+<div class="block">Identifies a method that gets called during servlet initialization.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/juneau/rest/annotation/HookEvent.html#POST_CALL">POST_CALL</a></span></code>
+<div class="block">Identifies a method that gets called immediately after the <ja>@RestMethod</ja> annotated method gets called.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/juneau/rest/annotation/HookEvent.html#POST_INIT">POST_INIT</a></span></code>
+<div class="block">Identifies a method that gets called immediately after servlet initialization.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/juneau/rest/annotation/HookEvent.html#POST_INIT_CHILD_FIRST">POST_INIT_CHILD_FIRST</a></span></code>
+<div class="block">Identical to <a href="../../../../../org/apache/juneau/rest/annotation/HookEvent.html#POST_INIT"><code>POST_INIT</code></a> except the order of execution is child-resources first.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/juneau/rest/annotation/HookEvent.html#PRE_CALL">PRE_CALL</a></span></code>
+<div class="block">Identifies a method that gets called immediately before the <ja>@RestMethod</ja> annotated method gets called.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/juneau/rest/annotation/HookEvent.html#START_CALL">START_CALL</a></span></code>
+<div class="block">Identifies a method that should be called immediately after the <code>HttpServlet.service(HttpServletRequest, HttpServletResponse)</code>
+ method is called.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/juneau/rest/annotation/HookEvent.html" title="enum in org.apache.juneau.rest.annotation">HookEvent</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/juneau/rest/annotation/HookEvent.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/juneau/rest/annotation/HookEvent.html" title="enum in org.apache.juneau.rest.annotation">HookEvent</a>[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/juneau/rest/annotation/HookEvent.html#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3>
+<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/7/docs/
 api/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.detail">
+<!--   -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a name="START_CALL">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>START_CALL</h4>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/juneau/rest/annotation/HookEvent.html" title="enum in org.apache.juneau.rest.annotation">HookEvent</a> <a href="../../../../../src-html/org/apache/juneau/rest/annotation/HookEvent.html#line.80">START_CALL</a></pre>
+<div class="block">Identifies a method that should be called immediately after the <code>HttpServlet.service(HttpServletRequest, HttpServletResponse)</code>
+ method is called.
+
+ <p>
+ Note that you only have access to the raw request and response objects at this point.
+
+ <p>
+ The list of valid parameter types are as follows:
+ <ul>
+   <li>Servlet request/response objects:
+      <ul>
+         <li><a href="http://docs.oracle.com/javaee/5/api/javax/servlet/http/HttpServletRequest.html?is-external=true" title="class or interface in javax.servlet.http"><code>HttpServletRequest</code></a>
+         <li><a href="http://docs.oracle.com/javaee/5/api/javax/servlet/http/HttpServletResponse.html?is-external=true" title="class or interface in javax.servlet.http"><code>HttpServletResponse</code></a>
+      </ul>
+ </ul>
+
+ <h6 class='figure'>Example:</h6>
+ <p class='bcode'>
+   <ja>@RestResource</ja>(...)
+   <jk>public class</jk> MyResource <jk>extends</jk> RestServletDefault {
+
+      <jc>// Add a request attribute to all incoming requests.</jc>
+      <ja>@RestHook</ja>(<jsf>START_CALL</jsf>)
+      <jk>public void</jk> onStartCall(HttpServletRequest req) {
+         req.setAttribute(<js>"foobar"</js>, <jk>new</jk> FooBar());
+      }
+   }
+ </p>
+
+ <h5 class='section'>Notes:</h5>
+ <ul class='spaced-list'>
+   <li>If the method returns any value, it is ignored.
+   <li>Multiple START_CALL methods can be defined on a class.
+      <br>START_CALL methods on parent classes are invoked before START_CALL methods on child classes.
+      <br>The order of START_CALL method invocations within a class is alphabetical, then by parameter count, then by parameter types.
+   <li>The method can throw any exception.
+      <br><a href="../../../../../org/apache/juneau/rest/RestException.html" title="class in org.apache.juneau.rest"><code>RestExceptions</code></a> can be thrown to cause a particular HTTP error status code.
+      <br>All other exceptions cause an HTTP 500 error status code.
+   <li>Note that if you override a parent method, you probably need to call <code><jk>super</jk>.parentMethod(...)</code>.
+      <br>The method is still considered part of the parent class for ordering purposes even though it's
+      overridden by the child class.
+ </ul></div>
+</li>
+</ul>
+<a name="PRE_CALL">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PRE_CALL</h4>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/juneau/rest/annotation/HookEvent.html" title="enum in org.apache.juneau.rest.annotation">HookEvent</a> <a href="../../../../../src-html/org/apache/juneau/rest/annotation/HookEvent.html#line.191">PRE_CALL</a></pre>
+<div class="block">Identifies a method that gets called immediately before the <ja>@RestMethod</ja> annotated method gets called.
+
+ <p>
+ At this point, the <a href="../../../../../org/apache/juneau/rest/RestRequest.html" title="class in org.apache.juneau.rest"><code>RestRequest</code></a> object has been fully initialized, and all <a href="../../../../../org/apache/juneau/rest/RestGuard.html" title="class in org.apache.juneau.rest"><code>RestGuard</code></a> and
+ <a href="../../../../../org/apache/juneau/rest/RestMatcher.html" title="class in org.apache.juneau.rest"><code>RestMatcher</code></a> objects have been called.
+
+ <p>
+ The list of valid parameter types are as follows:
+ <ul>
+   <li>Servlet request/response objects:
+      <ul>
+         <li><a href="http://docs.oracle.com/javaee/5/api/javax/servlet/http/HttpServletRequest.html?is-external=true" title="class or interface in javax.servlet.http"><code>HttpServletRequest</code></a>
+         <li><a href="http://docs.oracle.com/javaee/5/api/javax/servlet/http/HttpServletResponse.html?is-external=true" title="class or interface in javax.servlet.http"><code>HttpServletResponse</code></a>
+      </ul>
+   <li>Extended request/response objects:
+      <ul>
+         <li><a href="../../../../../org/apache/juneau/rest/RestRequest.html" title="class in org.apache.juneau.rest"><code>RestRequest</code></a>
+         <li><a href="../../../../../org/apache/juneau/rest/RestResponse.html" title="class in org.apache.juneau.rest"><code>RestResponse</code></a>
+      </ul>
+   <li>Header objects:
+      <ul>
+         <li><a href="../../../../../org/apache/juneau/http/Accept.html" title="class in org.apache.juneau.http"><code>Accept</code></a>
+         <li><a href="../../../../../org/apache/juneau/http/AcceptCharset.html" title="class in org.apache.juneau.http"><code>AcceptCharset</code></a>
+         <li><a href="../../../../../org/apache/juneau/http/AcceptEncoding.html" title="class in org.apache.juneau.http"><code>AcceptEncoding</code></a>
+         <li><a href="../../../../../org/apache/juneau/http/AcceptLanguage.html" title="class in org.apache.juneau.http"><code>AcceptLanguage</code></a>
+         <li><a href="../../../../../org/apache/juneau/http/Authorization.html" title="class in org.apache.juneau.http"><code>Authorization</code></a>
+         <li><a href="../../../../../org/apache/juneau/http/CacheControl.html" title="class in org.apache.juneau.http"><code>CacheControl</code></a>
+         <li><a href="../../../../../org/apache/juneau/http/Connection.html" title="class in org.apache.juneau.http"><code>Connection</code></a>
+         <li><a href="../../../../../org/apache/juneau/http/ContentLength.html" title="class in org.apache.juneau.http"><code>ContentLength</code></a>
+         <li><a href="../../../../../org/apache/juneau/http/ContentType.html" title="class in org.apache.juneau.http"><code>ContentType</code></a>
+         <li><a href="../../../../../org/apache/juneau/http/Date.html" title="class in org.apache.juneau.http"><code>Date</code></a>
+         <li><a href="../../../../../org/apache/juneau/http/Expect.html" title="class in org.apache.juneau.http"><code>Expect</code></a>
+         <li><a href="../../../../../org/apache/juneau/http/From.html" title="class in org.apache.juneau.http"><code>From</code></a>
+         <li><a href="../../../../../org/apache/juneau/http/Host.html" title="class in org.apache.juneau.http"><code>Host</code></a>
+         <li><a href="../../../../../org/apache/juneau/http/IfMatch.html" title="class in org.apache.juneau.http"><code>IfMatch</code></a>
+         <li><a href="../../../../../org/apache/juneau/http/IfModifiedSince.html" title="class in org.apache.juneau.http"><code>IfModifiedSince</code></a>
+         <li><a href="../../../../../org/apache/juneau/http/IfNoneMatch.html" title="class in org.apache.juneau.http"><code>IfNoneMatch</code></a>
+         <li><a href="../../../../../org/apache/juneau/http/IfRange.html" title="class in org.apache.juneau.http"><code>IfRange</code></a>
+         <li><a href="../../../../../org/apache/juneau/http/IfUnmodifiedSince.html" title="class in org.apache.juneau.http"><code>IfUnmodifiedSince</code></a>
+         <li><a href="../../../../../org/apache/juneau/http/MaxForwards.html" title="class in org.apache.juneau.http"><code>MaxForwards</code></a>
+         <li><a href="../../../../../org/apache/juneau/http/Pragma.html" title="class in org.apache.juneau.http"><code>Pragma</code></a>
+         <li><a href="../../../../../org/apache/juneau/http/ProxyAuthorization.html" title="class in org.apache.juneau.http"><code>ProxyAuthorization</code></a>
+         <li><a href="../../../../../org/apache/juneau/http/Range.html" title="class in org.apache.juneau.http"><code>Range</code></a>
+         <li><a href="../../../../../org/apache/juneau/http/Referer.html" title="class in org.apache.juneau.http"><code>Referer</code></a>
+         <li><a href="../../../../../org/apache/juneau/http/TE.html" title="class in org.apache.juneau.http"><code>TE</code></a>
+         <li><a href="../../../../../org/apache/juneau/http/UserAgent.html" title="class in org.apache.juneau.http"><code>UserAgent</code></a>
+         <li><a href="../../../../../org/apache/juneau/http/Upgrade.html" title="class in org.apache.juneau.http"><code>Upgrade</code></a>
+         <li><a href="../../../../../org/apache/juneau/http/Via.html" title="class in org.apache.juneau.http"><code>Via</code></a>
+         <li><a href="../../../../../org/apache/juneau/http/Warning.html" title="class in org.apache.juneau.http"><code>Warning</code></a>
+         <li><a href="http://docs.oracle.com/javase/7/docs/api/java/util/TimeZone.html?is-external=true" title="class or interface in java.util"><code>TimeZone</code></a>
+      </ul>
+   <li>Other objects:
+      <ul>
+         <li><a href="http://docs.oracle.com/javase/7/docs/api/java/util/ResourceBundle.html?is-external=true" title="class or interface in java.util"><code>ResourceBundle</code></a>
+         <li><a href="../../../../../org/apache/juneau/utils/MessageBundle.html" title="class in org.apache.juneau.utils"><code>MessageBundle</code></a>
+         <li><a href="http://docs.oracle.com/javase/7/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io"><code>InputStream</code></a>
+         <li><a href="http://docs.oracle.com/javaee/5/api/javax/servlet/ServletInputStream.html?is-external=true" title="class or interface in javax.servlet"><code>ServletInputStream</code></a>
+         <li><a href="http://docs.oracle.com/javase/7/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io"><code>Reader</code></a>
+         <li><a href="http://docs.oracle.com/javase/7/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io"><code>OutputStream</code></a>
+         <li><a href="http://docs.oracle.com/javaee/5/api/javax/servlet/ServletOutputStream.html?is-external=true" title="class or interface in javax.servlet"><code>ServletOutputStream</code></a>
+         <li><a href="http://docs.oracle.com/javase/7/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io"><code>Writer</code></a>
+         <li><a href="../../../../../org/apache/juneau/rest/RequestHeaders.html" title="class in org.apache.juneau.rest"><code>RequestHeaders</code></a>
+         <li><a href="../../../../../org/apache/juneau/rest/RequestQuery.html" title="class in org.apache.juneau.rest"><code>RequestQuery</code></a>
+         <li><a href="../../../../../org/apache/juneau/rest/RequestFormData.html" title="class in org.apache.juneau.rest"><code>RequestFormData</code></a>
+         <li><a href="../../../../../org/apache/juneau/http/HttpMethod.html" title="enum in org.apache.juneau.http"><code>HttpMethod</code></a>
+         <li><a href="http://docs.oracle.com/javase/7/docs/api/java/util/logging/Logger.html?is-external=true" title="class or interface in java.util.logging"><code>Logger</code></a>
+         <li><a href="../../../../../org/apache/juneau/internal/JuneauLogger.html" title="class in org.apache.juneau.internal"><code>JuneauLogger</code></a>
+         <li><a href="../../../../../org/apache/juneau/rest/RestContext.html" title="class in org.apache.juneau.rest"><code>RestContext</code></a>
+         <li><a href="../../../../../org/apache/juneau/parser/Parser.html" title="class in org.apache.juneau.parser"><code>Parser</code></a>
+         <li><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util"><code>Locale</code></a>
+         <li><a href="../../../../../org/apache/juneau/dto/swagger/Swagger.html" title="class in org.apache.juneau.dto.swagger"><code>Swagger</code></a>
+         <li><a href="../../../../../org/apache/juneau/rest/RequestPathMatch.html" title="class in org.apache.juneau.rest"><code>RequestPathMatch</code></a>
+         <li><a href="../../../../../org/apache/juneau/rest/RequestBody.html" title="class in org.apache.juneau.rest"><code>RequestBody</code></a>
+         <li><a href="../../../../../org/apache/juneau/ini/ConfigFile.html" title="class in org.apache.juneau.ini"><code>ConfigFile</code></a>
+         <li><a href="../../../../../org/apache/juneau/UriContext.html" title="class in org.apache.juneau"><code>UriContext</code></a>
+         <li><a href="../../../../../org/apache/juneau/UriResolver.html" title="class in org.apache.juneau"><code>UriResolver</code></a>
+      </ul>
+ </ul>
+
+ <h6 class='figure'>Example:</h6>
+ <p class='bcode'>
+   <ja>@RestResource</ja>(...)
+   <jk>public class</jk> MyResource <jk>extends</jk> RestServletDefault {
+
+      <jc>// Log the incoming request.</jc>
+      <ja>@RestHook</ja>(<jsf>PRE_CALL</jsf>)
+      <jk>public void</jk> onPreCall(Accept accept, Logger logger) {
+         logger.fine(<js>"Accept {0} header found."</js>, accept);
+      }
+   }
+ </p>
+
+ <h5 class='section'>Notes:</h5>
+ <ul class='spaced-list'>
+   <li>If the method returns any value, it is ignored.
+   <li>Multiple PRE_CALL methods can be defined on a class.
+      <br>PRE_CALL methods on parent classes are invoked before PRE_CALL methods on child classes.
+      <br>The order of PRE_CALL method invocations within a class is alphabetical, then by parameter count, then by parameter types.
+   <li>The method can throw any exception.
+      <br><a href="../../../../../org/apache/juneau/rest/RestException.html" title="class in org.apache.juneau.rest"><code>RestExceptions</code></a> can be thrown to cause a particular HTTP error status code.
+      <br>All other exceptions cause an HTTP 500 error status code.
+   <li>Note that if you override a parent method, you probably need to call <code><jk>super</jk>.parentMethod(...)</code>.
+      <br>The method is still considered part of the parent class for ordering purposes even though it's
+      overridden by the child class.
+   <li>It's advisable not to mess around with the HTTP body itself since you may end up consuming the body
+      before the actual REST method has a chance to use it.
+ </ul></div>
+</li>
+</ul>
+<a name="POST_CALL">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>POST_CALL</h4>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/juneau/rest/annotation/HookEvent.html" title="enum in org.apache.juneau.rest.annotation">HookEvent</a> <a href="../../../../../src-html/org/apache/juneau/rest/annotation/HookEvent.html#line.228">POST_CALL</a></pre>
+<div class="block">Identifies a method that gets called immediately after the <ja>@RestMethod</ja> annotated method gets called.
+
+ <p>
+ At this point, the output object returned by the method call has been set on the response, but
+ <a href="../../../../../org/apache/juneau/rest/RestConverter.html" title="interface in org.apache.juneau.rest"><code>RestConverters</code></a> have not yet been executed and the response has not yet been written.
+
+ <p>
+ The list of valid parameter types are the same as <a href="../../../../../org/apache/juneau/rest/annotation/HookEvent.html#PRE_CALL"><code>PRE_CALL</code></a>.
+
+ <h6 class='figure'>Example:</h6>
+ <p class='bcode'>
+   <ja>@RestResource</ja>(...)
+   <jk>public class</jk> MyResource <jk>extends</jk> RestServletDefault {
+
+      <jc>// Log the result of the request.</jc>
+      <ja>@RestHook</ja>(<jsf>POST_CALL</jsf>)
+      <jk>public void</jk> onPostCall(RestResponse res, Logger logger) {
+         logger.fine(<js>Output {0} was set on the response."</js>, res.getOutput());
+      }
+   }
+ </p>
+
+ <h5 class='section'>Notes:</h5>
+ <ul class='spaced-list'>
+   <li>If the method returns any value, it is ignored.
+   <li>Multiple POST_CALL methods can be defined on a class.
+      <br>POST_CALL methods on parent classes are invoked before POST_CALL methods on child classes.
+      <br>The order of POST_CALL method invocations within a class is alphabetical, then by parameter count, then by parameter types.
+   <li>The method can throw any exception, although at this point it is too late to set an HTTP error status code.
+   <li>Note that if you override a parent method, you probably need to call <code><jk>super</jk>.parentMethod(...)</code>.
+      <br>The method is still considered part of the parent class for ordering purposes even though it's
+      overridden by the child class.
+ </ul></div>
+</li>
+</ul>
+<a name="END_CALL">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>END_CALL</h4>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/juneau/rest/annotation/HookEvent.html" title="enum in org.apache.juneau.rest.annotation">HookEvent</a> <a href="../../../../../src-html/org/apache/juneau/rest/annotation/HookEvent.html#line.283">END_CALL</a></pre>
+<div class="block">Identifies a method that gets called right before we exit the servlet service method.
+
+ <p>
+ At this point, the output has been written and flushed.
+
+ <p>
+ The list of valid parameter types are as follows:
+ <ul>
+   <li>Servlet request/response objects:
+      <ul>
+         <li><a href="http://docs.oracle.com/javaee/5/api/javax/servlet/http/HttpServletRequest.html?is-external=true" title="class or interface in javax.servlet.http"><code>HttpServletRequest</code></a>
+         <li><a href="http://docs.oracle.com/javaee/5/api/javax/servlet/http/HttpServletResponse.html?is-external=true" title="class or interface in javax.servlet.http"><code>HttpServletResponse</code></a>
+      </ul>
+ </ul>
+
+ <p>
+ The following attributes are set on the <a href="http://docs.oracle.com/javaee/5/api/javax/servlet/http/HttpServletRequest.html?is-external=true" title="class or interface in javax.servlet.http"><code>HttpServletRequest</code></a> object that can be useful for logging purposes:
+ <ul>
+   <li><js>"Exception"</js> - Any exceptions thrown during the request.
+   <li><js>"ExecTime"</js> - Execution time of the request.
+ </ul>
+
+ <h6 class='figure'>Example:</h6>
+ <p class='bcode'>
+   <ja>@RestResource</ja>(...)
+   <jk>public class</jk> MyResource <jk>extends</jk> RestServletDefault {
+
+      <jc>// Log the time it took to execute the request.</jc>
+      <ja>@RestHook</ja>(<jsf>END_CALL</jsf>)
+      <jk>public void</jk> onEndCall(RestRequest req, Logger logger) {
+         Exception e = (Exception)req.getAttribute(<js>"Exception"</js>);
+         Long execTime = (Long)req.getAttribute(<js>"ExecTime"</js>);
+         <jk>if</jk> (e != <jk>null</jk>)
+            logger.warn(e, <js>"Request failed in {0}ms."</js>, execTime);
+         <jk>else</jk>
+            logger.fine(<js>"Request finished in {0}ms."</js>, execTime);
+      }
+   }
+ </p>
+
+ <h5 class='section'>Notes:</h5>
+ <ul class='spaced-list'>
+   <li>If the method returns any value, it is ignored.
+   <li>Multiple END_CALL methods can be defined on a class.
+      <br>END_CALL methods on parent classes are invoked before END_CALL methods on child classes.
+      <br>The order of END_CALL method invocations within a class is alphabetical, then by parameter count, then by parameter types.
+   <li>The method can throw any exception, although at this point it is too late to set an HTTP error status code.
+   <li>Note that if you override a parent method, you probably need to call <code><jk>super</jk>.parentMethod(...)</code>.
+      <br>The method is still considered part of the parent class for ordering purposes even though it's
+      overridden by the child class.
+ </ul></div>
+</li>
+</ul>
+<a name="INIT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>INIT</h4>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/juneau/rest/annotation/HookEvent.html" title="enum in org.apache.juneau.rest.annotation">HookEvent</a> <a href="../../../../../src-html/org/apache/juneau/rest/annotation/HookEvent.html#line.328">INIT</a></pre>
+<div class="block">Identifies a method that gets called during servlet initialization.
+
+ <p>
+ This method is called from within the <a href="http://docs.oracle.com/javaee/5/api/javax/servlet/Servlet.html?is-external=true#init-javax.servlet.ServletConfig-" title="class or interface in javax.servlet"><code>Servlet.init(ServletConfig)</code></a> method after the <a href="../../../../../org/apache/juneau/rest/RestConfig.html" title="class in org.apache.juneau.rest"><code>RestConfig</code></a>
+ object has been created and initialized with the annotations defined on the class, but before the
+ <a href="../../../../../org/apache/juneau/rest/RestContext.html" title="class in org.apache.juneau.rest"><code>RestContext</code></a> object has been created.
+
+ <p>
+ The only valid parameter type for this method is <a href="../../../../../org/apache/juneau/rest/RestConfig.html" title="class in org.apache.juneau.rest"><code>RestConfig</code></a> which can be used to configure the servlet.
+
+ <p>
+ An example of this is the <code>PetStoreResource</code> class that uses an init method to perform initialization
+ of an internal data structure.
+
+ <h6 class='figure'>Example:</h6>
+ <p class='bcode'>
+   <ja>@RestResource</ja>(...)
+   <jk>public class</jk> PetStoreResource <jk>extends</jk> ResourceJena {
+
+      <jc>// Our database.</jc>
+      <jk>private</jk> Map<Integer,Pet> <jf>petDB</jf>;
+
+      <ja>@RestHook</ja>(<jsf>INIT</jsf>)
+      <jk>public void</jk> onInit(RestConfig config) <jk>throws</jk> Exception {
+         <jc>// Load our database from a local JSON file.</jc>
+         <jf>petDB</jf> = JsonParser.<jsf>DEFAULT</jsf>.parse(getClass().getResourceAsStream(<js>"PetStore.json"</js>), LinkedHashMap.<jk>class</jk>, Integer.<jk>class</jk>, Pet.<jk>class</jk>);
+      }
+   }
+ </p>
+
+ <h5 class='section'>Notes:</h5>
+ <ul class='spaced-list'>
+   <li>If the method returns any value, it is ignored.
+   <li>Multiple INIT methods can be defined on a class.
+      <br>INIT methods on parent classes are invoked before INIT methods on child classes.
+      <br>The order of INIT method invocations within a class is alphabetical, then by parameter count, then by parameter types.
+   <li>The method can throw any exception causing initialization of the servlet to fail.
+   <li>Note that if you override a parent method, you probably need to call <code><jk>super</jk>.parentMethod(...)</code>.
+      <br>The method is still considered part of the parent class for ordering purposes even though it's
+      overridden by the child class.
+ </ul></div>
+</li>
+</ul>
+<a name="POST_INIT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>POST_INIT</h4>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/juneau/rest/annotation/HookEvent.html" title="enum in org.apache.juneau.rest.annotation">HookEvent</a> <a href="../../../../../src-html/org/apache/juneau/rest/annotation/HookEvent.html#line.353">POST_INIT</a></pre>
+<div class="block">Identifies a method that gets called immediately after servlet initialization.
+
+ <p>
+ This method is called from within the <a href="http://docs.oracle.com/javaee/5/api/javax/servlet/Servlet.html?is-external=true#init-javax.servlet.ServletConfig-" title="class or interface in javax.servlet"><code>Servlet.init(ServletConfig)</code></a> method after the <a href="../../../../../org/apache/juneau/rest/RestContext.html" title="class in org.apache.juneau.rest"><code>RestContext</code></a>
+ object has been created.
+
+ <p>
+ The only valid parameter type for this method is <a href="../../../../../org/apache/juneau/rest/RestContext.html" title="class in org.apache.juneau.rest"><code>RestContext</code></a> which can be used to retrieve information
+ about the servlet.
+
+ <h5 class='section'>Notes:</h5>
+ <ul class='spaced-list'>
+   <li>If the method returns any value, it is ignored.
+   <li>Multiple POST_INIT methods can be defined on a class.
+      <br>POST_INIT methods on parent classes are invoked before POST_INIT methods on child classes.
+      <br>The order of POST_INIT method invocations within a class is alphabetical, then by parameter count, then by parameter types.
+   <li>The method can throw any exception causing initialization of the servlet to fail.
+   <li>Note that if you override a parent method, you probably need to call <code><jk>super</jk>.parentMethod(...)</code>.
+      <br>The method is still considered part of the parent class for ordering purposes even though it's
+      overridden by the child class.
+ </ul></div>
+</li>
+</ul>
+<a name="POST_INIT_CHILD_FIRST">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>POST_INIT_CHILD_FIRST</h4>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/juneau/rest/annotation/HookEvent.html" title="enum in org.apache.juneau.rest.annotation">HookEvent</a> <a href="../../../../../src-html/org/apache/juneau/rest/annotation/HookEvent.html#line.378">POST_INIT_CHILD_FIRST</a></pre>
+<div class="block">Identical to <a href="../../../../../org/apache/juneau/rest/annotation/HookEvent.html#POST_INIT"><code>POST_INIT</code></a> except the order of execution is child-resources first.
+
+ <p>
+ Use this annotation if you need to perform any kind of initialization on child resources before the parent resource.
+
+ <p>
+ This method is called from within the <a href="http://docs.oracle.com/javaee/5/api/javax/servlet/Servlet.html?is-external=true#init-javax.servlet.ServletConfig-" title="class or interface in javax.servlet"><code>Servlet.init(ServletConfig)</code></a> method after the <a href="../../../../../org/apache/juneau/rest/RestContext.html" title="class in org.apache.juneau.rest"><code>RestContext</code></a>
+ object has been created and after the <a href="../../../../../org/apache/juneau/rest/annotation/HookEvent.html#POST_INIT"><code>POST_INIT</code></a> methods have been called.
+
+ <p>
+ The only valid parameter type for this method is <a href="../../../../../org/apache/juneau/rest/RestContext.html" title="class in org.apache.juneau.rest"><code>RestContext</code></a> which can be used to retrieve information
+ about the servlet.
+
+ <h5 class='section'>Notes:</h5>
+ <ul class='spaced-list'>
+   <li>If the method returns any value, it is ignored.
+   <li>Multiple POST_INIT_CHILD_FIRST methods can be defined on a class.
+      <br>POST_INIT_CHILD_FIRST methods on parent classes are invoked before POST_INIT_CHILD_FIRST methods on child classes.
+      <br>The order of POST_INIT_CHILD_FIRST method invocations within a class is alphabetical, then by parameter count, then by parameter types.
+   <li>The method can throw any exception causing initialization of the servlet to fail.
+ </ul></div>
+</li>
+</ul>
+<a name="DESTROY">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DESTROY</h4>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/juneau/rest/annotation/HookEvent.html" title="enum in org.apache.juneau.rest.annotation">HookEvent</a> <a href="../../../../../src-html/org/apache/juneau/rest/annotation/HookEvent.html#line.418">DESTROY</a></pre>
+<div class="block">Identifies a method that gets called during servlet destroy.
+
+ <p>
+ This method is called from within the <a href="http://docs.oracle.com/javaee/5/api/javax/servlet/Servlet.html?is-external=true#destroy--" title="class or interface in javax.servlet"><code>Servlet.destroy()</code></a>.
+
+ <p>
+ The only valid parameter type for this method is <a href="../../../../../org/apache/juneau/rest/RestContext.html" title="class in org.apache.juneau.rest"><code>RestContext</code></a>, although typically no arguments will
+ be specified.
+
+ <h6 class='figure'>Example:</h6>
+ <p class='bcode'>
+   <ja>@RestResource</ja>(...)
+   <jk>public class</jk> PetStoreResource <jk>extends</jk> ResourceJena {
+
+      <jc>// Our database.</jc>
+      <jk>private</jk> Map<Integer,Pet> <jf>petDB</jf>;
+
+      <ja>@RestHook</ja>(<jsf>DESTROY</jsf>)
+      <jk>public void</jk> onDestroy() {
+         <jf>petDB</jf> = <jk>null</jk>;
+      }
+   }
+ </p>
+
+ <h5 class='section'>Notes:</h5>
+ <ul class='spaced-list'>
+   <li>If the method returns any value, it is ignored.
+   <li>Multiple DESTROY methods can be defined on a class.
+      <br>DESTROY methods on child classes are invoked before DESTROY methods on parent classes.
+      <br>The order of DESTROY method invocations within a class is alphabetical, then by parameter count, then by parameter types.
+   <li>In general, destroy methods should not throw any exceptions, although if any are thrown, the stack trace will be
+      printed to <code>System.err</code>.
+   <li>Note that if you override a parent method, you probably need to call <code><jk>super</jk>.parentMethod(...)</code>.
+      <br>The method is still considered part of the parent class for ordering purposes even though it's
+      overridden by the child class.
+ </ul></div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="values--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre>public static&nbsp;<a href="../../../../../org/apache/juneau/rest/annotation/HookEvent.html" title="enum in org.apache.juneau.rest.annotation">HookEvent</a>[]&nbsp;<a href="../../../../../src-html/org/apache/juneau/rest/annotation/HookEvent.html#line.34">values</a>()</pre>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.  This method may be used to iterate
+over the constants as follows:
+<pre>
+for (HookEvent c : HookEvent.values())
+&nbsp;   System.out.println(c);
+</pre></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an array containing the constants of this enum type, in the order they are declared</dd>
+</dl>
+</li>
+</ul>
+<a name="valueOf-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre>public static&nbsp;<a href="../../../../../org/apache/juneau/rest/annotation/HookEvent.html" title="enum in org.apache.juneau.rest.annotation">HookEvent</a>&nbsp;<a href="../../../../../src-html/org/apache/juneau/rest/annotation/HookEvent.html#line.34">valueOf</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Returns the enum constant of this type with the specified name.
+The string must match <i>exactly</i> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enum constant with the specified name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd>
+<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/juneau/rest/annotation/Header.html" title="annotation in org.apache.juneau.rest.annotation"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/juneau/rest/annotation/HtmlDoc.html" title="annotation in org.apache.juneau.rest.annotation"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/juneau/rest/annotation/HookEvent.html" target="_top">Frames</a></li>
+<li><a href="HookEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2017 <a href="http://www.apache.org/">Apache</a>. All rights reserved.</small></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/84931d4d/content/site/apidocs/org/apache/juneau/rest/annotation/HtmlDoc.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/rest/annotation/HtmlDoc.html b/content/site/apidocs/org/apache/juneau/rest/annotation/HtmlDoc.html
index d2324b0..7780b9e 100644
--- a/content/site/apidocs/org/apache/juneau/rest/annotation/HtmlDoc.html
+++ b/content/site/apidocs/org/apache/juneau/rest/annotation/HtmlDoc.html
@@ -42,7 +42,7 @@
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/juneau/rest/annotation/Header.html" title="annotation in org.apache.juneau.rest.annotation"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/juneau/rest/annotation/HookEvent.html" title="enum in org.apache.juneau.rest.annotation"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/juneau/rest/annotation/Inherit.html" title="enum in org.apache.juneau.rest.annotation"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
@@ -817,7 +817,7 @@
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/juneau/rest/annotation/Header.html" title="annotation in org.apache.juneau.rest.annotation"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/juneau/rest/annotation/HookEvent.html" title="enum in org.apache.juneau.rest.annotation"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/juneau/rest/annotation/Inherit.html" title="enum in org.apache.juneau.rest.annotation"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/84931d4d/content/site/apidocs/org/apache/juneau/rest/annotation/Response.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/rest/annotation/Response.html b/content/site/apidocs/org/apache/juneau/rest/annotation/Response.html
index 3574059..a64ddf7 100644
--- a/content/site/apidocs/org/apache/juneau/rest/annotation/Response.html
+++ b/content/site/apidocs/org/apache/juneau/rest/annotation/Response.html
@@ -43,7 +43,7 @@
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/juneau/rest/annotation/ResourceSwagger.html" title="annotation in org.apache.juneau.rest.annotation"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/juneau/rest/annotation/RestMethod.html" title="annotation in org.apache.juneau.rest.annotation"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/juneau/rest/annotation/RestHook.html" title="annotation in org.apache.juneau.rest.annotation"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/juneau/rest/annotation/Response.html" target="_top">Frames</a></li>
@@ -312,7 +312,7 @@ public @interface <a href="../../../../../src-html/org/apache/juneau/rest/annota
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/juneau/rest/annotation/ResourceSwagger.html" title="annotation in org.apache.juneau.rest.annotation"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/juneau/rest/annotation/RestMethod.html" title="annotation in org.apache.juneau.rest.annotation"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/juneau/rest/annotation/RestHook.html" title="annotation in org.apache.juneau.rest.annotation"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/juneau/rest/annotation/Response.html" target="_top">Frames</a></li>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/84931d4d/content/site/apidocs/org/apache/juneau/rest/annotation/RestHook.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/rest/annotation/RestHook.html b/content/site/apidocs/org/apache/juneau/rest/annotation/RestHook.html
new file mode 100644
index 0000000..27d277f
--- /dev/null
+++ b/content/site/apidocs/org/apache/juneau/rest/annotation/RestHook.html
@@ -0,0 +1,271 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>RestHook (Apache Juneau (incubating) 6.3.2-incubating-SNAPSHOT)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../javadoc.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="RestHook (Apache Juneau (incubating) 6.3.2-incubating-SNAPSHOT)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/juneau/rest/annotation/Response.html" title="annotation in org.apache.juneau.rest.annotation"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/juneau/rest/annotation/RestMethod.html" title="annotation in org.apache.juneau.rest.annotation"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/juneau/rest/annotation/RestHook.html" target="_top">Frames</a></li>
+<li><a href="RestHook.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.required.element.summary">Required</a>&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.juneau.rest.annotation</div>
+<h2 title="Annotation Type RestHook" class="title">Annotation Type RestHook</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation">@Documented</a>
+ <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation">@Target</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Target.html?is-external=true#value--" title="class or interface in java.lang.annotation">value</a>=<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation">METHOD</a>)
+ <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation">@Retention</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Retention.html?is-external=true#value--" title="class or interface in java.lang.annotation">value</a>=<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation">RUNTIME</a>)
+ <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Inherited.html?is-external=true" title="class or interface in java.lang.annotation">@Inherited</a>
+public @interface <a href="../../../../../src-html/org/apache/juneau/rest/annotation/RestHook.html#line.80">RestHook</a></pre>
+<div class="block">Identifies Java methods on a resource/servlet class that get invoked during particular lifecycle events of
+ the servlet or REST call.
+
+ <p>
+ For example, if you want to add an initialization method to your resource:
+ <p class='bcode'>
+   <ja>@RestResource</ja>(...)
+   <jk>public class</jk> MyResource  {
+
+      <jc>// Our database.</jc>
+      <jk>private</jk> Map&lt;Integer,Object&gt; <jf>myDatabase</jf>;
+
+      <ja>@RestHook</ja>(<jsf>INIT</jsf>)
+      <jk>public void</jk> initMyDatabase(RestConfig config) <jk>throws</jk> Exception {
+         <jf>myDatabase</jf> = <jk>new</jk> LinkedHashMap&lt;&gt;();
+      }
+   }
+ </p>
+
+ <p>
+ Or if you want to intercept REST calls:
+ <p class='bcode'>
+   <ja>@RestResource</ja>(...)
+   <jk>public class</jk> MyResource {
+
+      <jc>// Add a request attribute to all incoming requests.</jc>
+      <ja>@RestHook</ja>(<jsf>PRE_CALL</jsf>)
+      <jk>public void</jk> onPreCall(RestRequest req) {
+         req.setAttribute(<js>"foo"</js>, <js>"bar"</js>);
+      }
+   }
+ </p>
+
+ <p>
+ The hook events can be broken down into two categories:
+ <ul class='spaced-list'>
+   <li>Resource lifecycle events:
+      <ul>
+         <li><a href="../../../../../org/apache/juneau/rest/annotation/HookEvent.html#INIT"><code>INIT</code></a> - Right before initialization.
+         <li><a href="../../../../../org/apache/juneau/rest/annotation/HookEvent.html#POST_INIT"><code>POST_INIT</code></a> - Right after initialization.
+         <li><a href="../../../../../org/apache/juneau/rest/annotation/HookEvent.html#POST_INIT_CHILD_FIRST"><code>POST_INIT_CHILD_FIRST</code></a> - Right after initialization, but run child methods first.
+         <li><a href="../../../../../org/apache/juneau/rest/annotation/HookEvent.html#DESTROY"><code>DESTROY</code></a> - Right before servlet destroy.
+      </ul>
+   <li>REST call lifecycle events:
+      <ul>
+         <li><a href="../../../../../org/apache/juneau/rest/annotation/HookEvent.html#START_CALL"><code>START_CALL</code></a> - At the beginning of a REST call.
+         <li><a href="../../../../../org/apache/juneau/rest/annotation/HookEvent.html#PRE_CALL"><code>PRE_CALL</code></a> - Right before the <ja>@RestMethod</ja> method is invoked.
+         <li><a href="../../../../../org/apache/juneau/rest/annotation/HookEvent.html#POST_CALL"><code>POST_CALL</code></a> - Right after the <ja>@RestMethod</ja> method is invoked.
+         <li><a href="../../../../../org/apache/juneau/rest/annotation/HookEvent.html#END_CALL"><code>END_CALL</code></a> - At the end of the REST call after the response has been flushed.
+      </ul>
+ </ul>
+
+ <p>
+ See the <a href="../../../../../org/apache/juneau/rest/annotation/HookEvent.html" title="enum in org.apache.juneau.rest.annotation"><code>HookEvent</code></a> class for information about individual event types.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ANNOTATION TYPE REQUIRED MEMBER SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="annotation.type.required.element.summary">
+<!--   -->
+</a>
+<h3>Required Element Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Required Element Summary table, listing required elements, and an explanation">
+<caption><span>Required Elements</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Required Element and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/juneau/rest/annotation/HookEvent.html" title="enum in org.apache.juneau.rest.annotation">HookEvent</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/juneau/rest/annotation/RestHook.html#value--">value</a></span></code>
+<div class="block">The lifecycle event.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="annotation.type.element.detail">
+<!--   -->
+</a>
+<h3>Element Detail</h3>
+<a name="value--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>value</h4>
+<pre>public abstract&nbsp;<a href="../../../../../org/apache/juneau/rest/annotation/HookEvent.html" title="enum in org.apache.juneau.rest.annotation">HookEvent</a>&nbsp;<a href="../../../../../src-html/org/apache/juneau/rest/annotation/RestHook.html#line.85">value</a></pre>
+<div class="block">The lifecycle event.</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/juneau/rest/annotation/Response.html" title="annotation in org.apache.juneau.rest.annotation"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/juneau/rest/annotation/RestMethod.html" title="annotation in org.apache.juneau.rest.annotation"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/juneau/rest/annotation/RestHook.html" target="_top">Frames</a></li>
+<li><a href="RestHook.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.required.element.summary">Required</a>&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2017 <a href="http://www.apache.org/">Apache</a>. All rights reserved.</small></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/84931d4d/content/site/apidocs/org/apache/juneau/rest/annotation/RestMethod.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/rest/annotation/RestMethod.html b/content/site/apidocs/org/apache/juneau/rest/annotation/RestMethod.html
index 3560208..ab1860b 100644
--- a/content/site/apidocs/org/apache/juneau/rest/annotation/RestMethod.html
+++ b/content/site/apidocs/org/apache/juneau/rest/annotation/RestMethod.html
@@ -42,7 +42,7 @@
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/juneau/rest/annotation/Response.html" title="annotation in org.apache.juneau.rest.annotation"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/juneau/rest/annotation/RestHook.html" title="annotation in org.apache.juneau.rest.annotation"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/juneau/rest/annotation/RestResource.html" title="annotation in org.apache.juneau.rest.annotation"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
@@ -1223,7 +1223,7 @@ public @interface <a href="../../../../../src-html/org/apache/juneau/rest/annota
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/juneau/rest/annotation/Response.html" title="annotation in org.apache.juneau.rest.annotation"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/juneau/rest/annotation/RestHook.html" title="annotation in org.apache.juneau.rest.annotation"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/juneau/rest/annotation/RestResource.html" title="annotation in org.apache.juneau.rest.annotation"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/84931d4d/content/site/apidocs/org/apache/juneau/rest/annotation/package-frame.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/rest/annotation/package-frame.html b/content/site/apidocs/org/apache/juneau/rest/annotation/package-frame.html
index 472d1ba..040b5fa 100644
--- a/content/site/apidocs/org/apache/juneau/rest/annotation/package-frame.html
+++ b/content/site/apidocs/org/apache/juneau/rest/annotation/package-frame.html
@@ -13,6 +13,7 @@
 <div class="indexContainer">
 <h2 title="Enums">Enums</h2>
 <ul title="Enums">
+<li><a href="HookEvent.html" title="enum in org.apache.juneau.rest.annotation" target="classFrame">HookEvent</a></li>
 <li><a href="Inherit.html" title="enum in org.apache.juneau.rest.annotation" target="classFrame">Inherit</a></li>
 </ul>
 <h2 title="Annotation Types">Annotation Types</h2>
@@ -34,6 +35,7 @@
 <li><a href="Query.html" title="annotation in org.apache.juneau.rest.annotation" target="classFrame">Query</a></li>
 <li><a href="ResourceSwagger.html" title="annotation in org.apache.juneau.rest.annotation" target="classFrame">ResourceSwagger</a></li>
 <li><a href="Response.html" title="annotation in org.apache.juneau.rest.annotation" target="classFrame">Response</a></li>
+<li><a href="RestHook.html" title="annotation in org.apache.juneau.rest.annotation" target="classFrame">RestHook</a></li>
 <li><a href="RestMethod.html" title="annotation in org.apache.juneau.rest.annotation" target="classFrame">RestMethod</a></li>
 <li><a href="RestResource.html" title="annotation in org.apache.juneau.rest.annotation" target="classFrame">RestResource</a></li>
 </ul>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/84931d4d/content/site/apidocs/org/apache/juneau/rest/annotation/package-summary.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/rest/annotation/package-summary.html b/content/site/apidocs/org/apache/juneau/rest/annotation/package-summary.html
index ee2a78c..0ee879a 100644
--- a/content/site/apidocs/org/apache/juneau/rest/annotation/package-summary.html
+++ b/content/site/apidocs/org/apache/juneau/rest/annotation/package-summary.html
@@ -86,6 +86,13 @@
 </tr>
 <tbody>
 <tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/juneau/rest/annotation/HookEvent.html" title="enum in org.apache.juneau.rest.annotation">HookEvent</a></td>
+<td class="colLast">
+<div class="block">Identifies servlet and REST call lifecycle events which cause <a href="../../../../../org/apache/juneau/rest/annotation/RestHook.html" title="annotation in org.apache.juneau.rest.annotation"><code>@RestHook</code></a>-annotated Java methods
+ to be called.</div>
+</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/juneau/rest/annotation/Inherit.html" title="enum in org.apache.juneau.rest.annotation">Inherit</a></td>
 <td class="colLast">
 <div class="block">Inheritance values for the <a href="../../../../../org/apache/juneau/rest/annotation/RestMethod.html#serializersInherit--"><code>RestMethod.serializersInherit()</code></a> and <a href="../../../../../org/apache/juneau/rest/annotation/RestMethod.html#parsersInherit--"><code>RestMethod.parsersInherit()</code></a>
@@ -218,12 +225,19 @@
 </td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/juneau/rest/annotation/RestHook.html" title="annotation in org.apache.juneau.rest.annotation">RestHook</a></td>
+<td class="colLast">
+<div class="block">Identifies Java methods on a resource/servlet class that get invoked during particular lifecycle events of
+ the servlet or REST call.</div>
+</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/juneau/rest/annotation/RestMethod.html" title="annotation in org.apache.juneau.rest.annotation">RestMethod</a></td>
 <td class="colLast">
 <div class="block">Identifies a REST Java method on a <a href="../../../../../org/apache/juneau/rest/RestServlet.html" title="class in org.apache.juneau.rest"><code>RestServlet</code></a> implementation class.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/juneau/rest/annotation/RestResource.html" title="annotation in org.apache.juneau.rest.annotation">RestResource</a></td>
 <td class="colLast">
 <div class="block">Used to denote that a class is a REST resource and to associate metadata on it.</div>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/84931d4d/content/site/apidocs/org/apache/juneau/rest/annotation/package-tree.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/rest/annotation/package-tree.html b/content/site/apidocs/org/apache/juneau/rest/annotation/package-tree.html
index bb129dd..edc2875 100644
--- a/content/site/apidocs/org/apache/juneau/rest/annotation/package-tree.html
+++ b/content/site/apidocs/org/apache/juneau/rest/annotation/package-tree.html
@@ -80,6 +80,7 @@
 <ul>
 <li type="circle">org.apache.juneau.rest.annotation.<a href="../../../../../org/apache/juneau/rest/annotation/RestResource.html" title="annotation in org.apache.juneau.rest.annotation"><span class="typeNameLink">RestResource</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
 <li type="circle">org.apache.juneau.rest.annotation.<a href="../../../../../org/apache/juneau/rest/annotation/RestMethod.html" title="annotation in org.apache.juneau.rest.annotation"><span class="typeNameLink">RestMethod</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
+<li type="circle">org.apache.juneau.rest.annotation.<a href="../../../../../org/apache/juneau/rest/annotation/RestHook.html" title="annotation in org.apache.juneau.rest.annotation"><span class="typeNameLink">RestHook</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
 <li type="circle">org.apache.juneau.rest.annotation.<a href="../../../../../org/apache/juneau/rest/annotation/Response.html" title="annotation in org.apache.juneau.rest.annotation"><span class="typeNameLink">Response</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
 <li type="circle">org.apache.juneau.rest.annotation.<a href="../../../../../org/apache/juneau/rest/annotation/ResourceSwagger.html" title="annotation in org.apache.juneau.rest.annotation"><span class="typeNameLink">ResourceSwagger</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
 <li type="circle">org.apache.juneau.rest.annotation.<a href="../../../../../org/apache/juneau/rest/annotation/Query.html" title="annotation in org.apache.juneau.rest.annotation"><span class="typeNameLink">Query</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
@@ -105,6 +106,7 @@
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
 <li type="circle">org.apache.juneau.rest.annotation.<a href="../../../../../org/apache/juneau/rest/annotation/Inherit.html" title="enum in org.apache.juneau.rest.annotation"><span class="typeNameLink">Inherit</span></a></li>
+<li type="circle">org.apache.juneau.rest.annotation.<a href="../../../../../org/apache/juneau/rest/annotation/HookEvent.html" title="enum in org.apache.juneau.rest.annotation"><span class="typeNameLink">HookEvent</span></a></li>
 </ul>
 </li>
 </ul>