Author: buildbot
Date: Sat Feb 15 19:54:59 2014
New Revision: 898057

Log:
Staging update by buildbot for deltaspike

Modified:
    websites/staging/deltaspike/trunk/content/   (props changed)
    websites/staging/deltaspike/trunk/content/jsf.html

Propchange: websites/staging/deltaspike/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Sat Feb 15 19:54:59 2014
@@ -1 +1 @@
-1568628
+1568671

Modified: websites/staging/deltaspike/trunk/content/jsf.html
==============================================================================
--- websites/staging/deltaspike/trunk/content/jsf.html (original)
+++ websites/staging/deltaspike/trunk/content/jsf.html Sat Feb 15 19:54:59 2014
@@ -188,6 +188,15 @@
 <li><a href="#jsf-systemevents">JSF SystemEvents</a></li>
 </ul>
 </li>
+<li><a href="#intergration-with-exception-control">Intergration with Exception 
Control</a><ul>
+<li><a href="#examples">Examples</a><ul>
+<li><a href="#basic">Basic</a></li>
+<li><a href="#redirect">Redirect</a></li>
+</ul>
+</li>
+<li><a href="#using-a-custom-qualifier-for-jsf-exceptions">Using a custom 
qualifier for JSF Exceptions</a></li>
+</ul>
+</li>
 <li><a href="#support-of-ear-deployments">Support of EAR deployments</a></li>
 <li><a href="#hints">Hints</a></li>
 </ul>
@@ -1309,6 +1318,76 @@ A sub-group is just a class or an interf
 </pre></div>
 
 
+<h1 id="intergration-with-exception-control">Intergration with Exception 
Control</h1>
+<p>Whenever a unhandled exception occurs within the JSF lifecycle, our JSF 
ExceptionHandler provides a integration to the DeltaSpike Exception Control.</p>
+<h2 id="examples">Examples</h2>
+<h3 id="basic">Basic</h3>
+<div class="codehilite"><pre><span class="nd">@ExceptionHandler</span>
+<span class="kd">public</span> <span class="kd">class</span> <span 
class="nc">ApplicationExceptionHandler</span>
+<span class="o">{</span>
+    <span class="kd">public</span> <span class="kt">void</span> <span 
class="nf">handleELException</span><span class="o">(</span><span 
class="nd">@Handles</span> <span class="n">ExceptionEvent</span><span 
class="o">&lt;</span><span class="n">ELException</span><span 
class="o">&gt;</span> <span class="n">event</span><span class="o">)</span>
+    <span class="o">{</span>
+        <span class="c1">// ...</span>
+
+        <span class="n">event</span><span class="o">.</span><span 
class="na">handled</span><span class="o">();</span>
+    <span class="o">}</span>
+<span class="o">}</span>
+</pre></div>
+
+
+<h3 id="redirect">Redirect</h3>
+<div class="codehilite"><pre><span class="nd">@ExceptionHandler</span>
+<span class="kd">public</span> <span class="kd">class</span> <span 
class="nc">ApplicationExceptionHandler</span>
+<span class="o">{</span>
+    <span class="kd">public</span> <span class="kt">void</span> <span 
class="nf">handleELException</span><span class="o">(</span><span 
class="nd">@Handles</span> <span class="n">ExceptionEvent</span><span 
class="o">&lt;</span><span class="n">ELException</span><span 
class="o">&gt;</span> <span class="n">event</span><span class="o">)</span>
+    <span class="o">{</span>
+        <span class="n">FacesContext</span><span class="o">.</span><span 
class="na">getCurrentInstance</span><span class="o">().</span><span 
class="na">getApplication</span><span class="o">().</span><span 
class="na">getNavigationHandler</span><span class="o">().</span><span 
class="na">handleNavigation</span><span class="o">(...);</span> <span 
class="c1">// or ExternalContext etc.</span>
+
+        <span class="c1">// required - &quot;stops&quot; the JSF 
lifecycle</span>
+        <span class="n">FacesContext</span><span class="o">.</span><span 
class="na">getCurrentInstance</span><span class="o">().</span><span 
class="na">setResponseComplete</span><span class="o">();</span>
+
+        <span class="n">event</span><span class="o">.</span><span 
class="na">handled</span><span class="o">();</span>
+    <span class="o">}</span>
+<span class="o">}</span>
+</pre></div>
+
+
+<h2 id="using-a-custom-qualifier-for-jsf-exceptions">Using a custom qualifier 
for JSF Exceptions</h2>
+<p>In some cases, it's required to differentiate exceptions from JSF and 
normal exceptions.
+This is possible via a CDI qualifier:</p>
+<div class="codehilite"><pre><span class="nd">@Target</span><span 
class="o">({</span> <span class="n">ElementType</span><span 
class="o">.</span><span class="na">TYPE</span><span class="o">,</span> <span 
class="n">ElementType</span><span class="o">.</span><span 
class="na">PARAMETER</span> <span class="o">})</span>
+<span class="nd">@Retention</span><span class="o">(</span><span 
class="n">RetentionPolicy</span><span class="o">.</span><span 
class="na">RUNTIME</span><span class="o">)</span>
+<span class="nd">@Documented</span>
+<span class="nd">@Qualifier</span>
+<span class="kd">public</span> <span class="nd">@interface</span> <span 
class="n">Jsf</span>
+<span class="o">{</span>
+<span class="o">}</span>
+
+<span class="nd">@Specializes</span>
+<span class="kd">public</span> <span class="kd">class</span> <span 
class="nc">MyJsfModuleConfig</span> <span class="kd">extends</span> <span 
class="n">JsfModuleConfig</span>
+<span class="o">{</span>
+    <span class="kd">public</span> <span class="n">Class</span><span 
class="o">&lt;?</span> <span class="kd">extends</span> <span 
class="n">Annotation</span><span class="o">&gt;</span> <span 
class="n">getExceptionQualifier</span><span class="o">()</span>
+    <span class="o">{</span>
+        <span class="k">return</span> <span class="n">Jsf</span><span 
class="o">.</span><span class="na">class</span><span class="o">;</span>
+    <span class="o">}</span>
+<span class="o">}</span>
+
+<span class="nd">@ExceptionHandler</span>
+<span class="kd">public</span> <span class="kd">class</span> <span 
class="nc">ApplicationExceptionHandler</span>
+<span class="o">{</span>
+    <span class="kd">public</span> <span class="kt">void</span> <span 
class="nf">handleELException</span><span class="o">(</span><span 
class="nd">@Handles</span> <span class="nd">@JsfExceptionEvent</span><span 
class="o">&lt;</span><span class="n">ELException</span><span 
class="o">&gt;</span> <span class="n">event</span><span class="o">)</span>
+    <span class="o">{</span>
+        <span class="n">FacesContext</span><span class="o">.</span><span 
class="na">getCurrentInstance</span><span class="o">().</span><span 
class="na">getApplication</span><span class="o">().</span><span 
class="na">getNavigationHandler</span><span class="o">().</span><span 
class="na">handleNavigation</span><span class="o">(...);</span> <span 
class="c1">// or ExternalContext etc.</span>
+
+        <span class="c1">// required - &quot;stops&quot; the JSF 
lifecycle</span>
+        <span class="n">FacesContext</span><span class="o">.</span><span 
class="na">getCurrentInstance</span><span class="o">().</span><span 
class="na">setResponseComplete</span><span class="o">();</span>
+
+        <span class="n">event</span><span class="o">.</span><span 
class="na">handled</span><span class="o">();</span>
+    <span class="o">}</span>
+<span class="o">}</span>
+</pre></div>
+
+
 <h1 id="support-of-ear-deployments">Support of EAR deployments</h1>
 <p>Before using features described by this page, please ensure that you are 
aware of <a 
href="https://issues.apache.org/jira/browse/DELTASPIKE-335";>DELTASPIKE-335</a> 
and the corresponding impact.</p>
 <h1 id="hints">Hints</h1>


Reply via email to