deltaspike-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From rsme...@apache.org
Subject svn commit: r1682851 [2/3] - /deltaspike/site/trunk/content/staging/documentation/
Date Mon, 01 Jun 2015 09:41:36 GMT
Modified: deltaspike/site/trunk/content/staging/documentation/jsf.html
URL: http://svn.apache.org/viewvc/deltaspike/site/trunk/content/staging/documentation/jsf.html?rev=1682851&r1=1682850&r2=1682851&view=diff
==============================================================================
--- deltaspike/site/trunk/content/staging/documentation/jsf.html (original)
+++ deltaspike/site/trunk/content/staging/documentation/jsf.html Mon Jun  1 09:41:35 2015
@@ -281,7 +281,7 @@ table.CodeRay td.code>pre{padding:0}
 </div>
 </div>
 <div class="sect1">
-<h2 id="_configure_your_projects">Configure Your Projects</h2>
+<h2 id="_project_setup">Project Setup</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>The configuration information provided here is for Maven-based projects and it assumes that you have already declared the DeltaSpike version and DeltaSpike Core module for your projects, as detailed in <a href="configure.html">Configure DeltaSpike in Your Projects</a>. For Maven-independent projects, see <a href="configure.html#config-maven-indep">Configure DeltaSpike in Maven-independent Projects</a>.</p>
@@ -321,12 +321,6 @@ table.CodeRay td.code>pre{padding:0}
 <span class="tag">&lt;/dependency&gt;</span></code></pre>
 </div>
 </div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_use_the_module_features">Use the Module Features</h2>
-<div class="sectionbody">
 <div class="admonitionblock important">
 <table>
 <tr>
@@ -343,8 +337,12 @@ the corresponding impact.
 </tr>
 </table>
 </div>
-<div class="sect2">
-<h3 id="_jsf_messages">JSF Messages</h3>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_jsf_messages">JSF Messages</h2>
+<div class="sectionbody">
 <div class="paragraph">
 <p>DeltaSpike provides an injectable component for typesafe FacesMessages.</p>
 </div>
@@ -382,12 +380,14 @@ In case of a String we use it for both t
 <p>If a Message is returned, we lookup the 'detail' and 'summary' categories (see <code>org.apache.deltaspike.core.api.message.Message#toString(String)</code> for creating the FacesMessage.</p>
 </div>
 </div>
+</div>
+<div class="sect1">
+<h2 id="_multi_window_handling">Multi-Window Handling</h2>
+<div class="sectionbody">
 <div class="sect2">
-<h3 id="_multi_window_handling">Multi-Window Handling</h3>
+<h3 id="_background">Background</h3>
 <div class="sect3">
-<h4 id="_background">Background</h4>
-<div class="sect4">
-<h5 id="_historic_considerations">Historic Considerations</h5>
+<h4 id="_historic_considerations">Historic Considerations</h4>
 <div class="paragraph">
 <p>Until the end of the 1990s web browsers are usually single threaded and
 only had one window. But in the last years browsers supporting multiple
@@ -398,8 +398,8 @@ maintaining web application data in @Ses
 still used in most of the cases.</p>
 </div>
 </div>
-<div class="sect4">
-<h5 id="_how_jsf_2_changed_the_world">How JSF-2 Changed the World</h5>
+<div class="sect3">
+<h4 id="_how_jsf_2_changed_the_world">How JSF-2 Changed the World</h4>
 <div class="paragraph">
 <p>The MyFaces Orchestra community did a good summary about the various
 ways to handle multiple window support in JSF Applications. Those
@@ -411,8 +411,8 @@ links, a typical JSF-2 application conta
 used to see in JSF-1, thus we have far more href links to cope with.</p>
 </div>
 </div>
-<div class="sect4">
-<h5 id="_standard_windowid_handling">Standard windowId Handling</h5>
+<div class="sect3">
+<h4 id="_standard_windowid_handling">Standard windowId Handling</h4>
 <div class="paragraph">
 <p>With a classical approach we would not be able to simply add a windowId
 parameter to such links because if the user would open the link in a new
@@ -430,10 +430,10 @@ not feasible as general solution.</p>
 </div>
 </div>
 </div>
+<div class="sect2">
+<h3 id="_available_modes">Available Modes</h3>
 <div class="sect3">
-<h4 id="_available_modes">Available Modes</h4>
-<div class="sect4">
-<h5 id="_clientwindow">CLIENTWINDOW</h5>
+<h4 id="_clientwindow">CLIENTWINDOW</h4>
 <div class="paragraph">
 <p>Each GET request results in an intermediate small html page which checks
 if the browser tab fits the requested windowId. When the windowId is
@@ -443,8 +443,8 @@ dsRid/windowId will be added. On the ser
 will be extracted from the cookie. For POST request detection, the
 windowId will be added as hidden input to all forms.</p>
 </div>
-<div class="sect5">
-<h6 id="_advantage">Advantage</h6>
+<div class="sect4">
+<h5 id="_advantage">Advantage</h5>
 <div class="ulist">
 <ul>
 <li>
@@ -453,8 +453,8 @@ windowId will be added as hidden input t
 </ul>
 </div>
 </div>
-<div class="sect5">
-<h6 id="_disadvantage">Disadvantage</h6>
+<div class="sect4">
+<h5 id="_disadvantage">Disadvantage</h5>
 <div class="ulist">
 <ul>
 <li>
@@ -476,8 +476,8 @@ directly.</p>
 </ul>
 </div>
 </div>
-<div class="sect5">
-<h6 id="_change_windowhandler_html">Change windowhandler.html</h6>
+<div class="sect4">
+<h5 id="_change_windowhandler_html">Change windowhandler.html</h5>
 <div class="paragraph">
 <p>To customize the look and feel of the windowhandler.html, you can simply
 provide a own via:</p>
@@ -497,8 +497,8 @@ provide a own via:</p>
 </div>
 </div>
 </div>
-<div class="sect4">
-<h5 id="_lazy">LAZY</h5>
+<div class="sect3">
+<h4 id="_lazy">LAZY</h4>
 <div class="paragraph">
 <p>Always appends the windowId to all, from JSF generated, URLs. On the
 first GET request without a windowId, it will generate a new windowId
@@ -509,8 +509,8 @@ check if the windowId in the URL is matc
 it is not matching, the view will be refreshed with the right windowId in
 the URL.</p>
 </div>
-<div class="sect5">
-<h6 id="_advantage_2">Advantage</h6>
+<div class="sect4">
+<h5 id="_advantage_2">Advantage</h5>
 <div class="ulist">
 <ul>
 <li>
@@ -519,8 +519,8 @@ the URL.</p>
 </ul>
 </div>
 </div>
-<div class="sect5">
-<h6 id="_disadvantage_2">Disadvantage</h6>
+<div class="sect4">
+<h5 id="_disadvantage_2">Disadvantage</h5>
 <div class="ulist">
 <ul>
 <li>
@@ -532,8 +532,8 @@ the windowId matches the <code>window.na
 </ul>
 </div>
 </div>
-<div class="sect5">
-<h6 id="_workflow_example">Workflow Example</h6>
+<div class="sect4">
+<h5 id="_workflow_example">Workflow Example</h5>
 <div class="paragraph">
 <p>First GET request with windowId</p>
 </div>
@@ -599,8 +599,8 @@ from <code>window.name</code></p>
 </div>
 </div>
 </div>
-<div class="sect4">
-<h5 id="_none">NONE</h5>
+<div class="sect3">
+<h4 id="_none">NONE</h4>
 <div class="paragraph">
 <p>Any window or browser tab detection will be disabled for the current
 request. Scopes like @WindowScoped, @GroupedConversationScoped or
@@ -609,15 +609,15 @@ current request does not support Javascr
 bot/crawler.</p>
 </div>
 </div>
-<div class="sect4">
-<h5 id="_delegated">DELEGATED</h5>
+<div class="sect3">
+<h4 id="_delegated">DELEGATED</h4>
 <div class="paragraph">
 <p>Delegates the complete window handling to the new JSF 2.2 ClientWindow
 (if not disabled).</p>
 </div>
 </div>
-<div class="sect4">
-<h5 id="_custom">CUSTOM</h5>
+<div class="sect3">
+<h4 id="_custom">CUSTOM</h4>
 <div class="paragraph">
 <p>Enables to use an complete own
 <code>org.apache.deltaspike.jsf.spi.scope.window.ClientWindow</code>
@@ -625,10 +625,10 @@ implementation.</p>
 </div>
 </div>
 </div>
+<div class="sect2">
+<h3 id="_configuration">Configuration</h3>
 <div class="sect3">
-<h4 id="_configuration">Configuration</h4>
-<div class="sect4">
-<h5 id="_ds_windowid">ds:windowId</h5>
+<h4 id="_ds_windowid">ds:windowId</h4>
 <div class="paragraph">
 <p>The component <code>ds:windowId</code>
 (<code>xmlns:ds="http://deltaspike.apache.org/jsf"</code>) is required to enable
@@ -638,8 +638,8 @@ mode. The best way, to apply it for all
 to all of your templates.</p>
 </div>
 </div>
-<div class="sect4">
-<h5 id="_ds_disableclientwindow">ds:disableClientWindow</h5>
+<div class="sect3">
+<h4 id="_ds_disableclientwindow">ds:disableClientWindow</h4>
 <div class="paragraph">
 <p>Similiar to JSF 2.2' <code>disableClientWindow</code> attribute,
 <code>ds:disableClientWindow</code> provides the ability to disable the rendering
@@ -654,8 +654,8 @@ of the windowId to all links of all chil
 </div>
 </div>
 </div>
-<div class="sect4">
-<h5 id="_number_of_active_windows">Number of Active Windows</h5>
+<div class="sect3">
+<h4 id="_number_of_active_windows">Number of Active Windows</h4>
 <div class="paragraph">
 <p>By default, DeltaSpike allows <code>1024</code> active windows per session. Anyway, this number is reduced inside this JSF module to <code>64</code> for JSF applications. Once that the limit number of active windows is reached, DeltaSpike will drop the oldest active window.</p>
 </div>
@@ -680,8 +680,8 @@ of the windowId to all links of all chil
 </div>
 </div>
 </div>
-<div class="sect4">
-<h5 id="_switch_mode">Switch Mode</h5>
+<div class="sect3">
+<h4 id="_switch_mode">Switch Mode</h4>
 <div class="paragraph">
 <p>To switch the mode, just provide a
 <code>org.apache.deltaspike.jsf.api.config.JsfModuleConfig</code> and overwrite
@@ -701,8 +701,8 @@ of the windowId to all links of all chil
 </div>
 </div>
 </div>
-<div class="sect4">
-<h5 id="_provide_a_custom_clientwindow">Provide a Custom ClientWindow</h5>
+<div class="sect3">
+<h4 id="_provide_a_custom_clientwindow">Provide a Custom ClientWindow</h4>
 <div class="paragraph">
 <p>If you would like to provide an custom
 <code>org.apache.deltaspike.jsf.spi.scope.window.ClientWindow</code>
@@ -736,8 +736,8 @@ implementation, you can just do it, for
 </div>
 </div>
 </div>
-<div class="sect3">
-<h4 id="_based_scopes">Based Scopes</h4>
+<div class="sect2">
+<h3 id="_based_scopes">Based Scopes</h3>
 <div class="ulist">
 <ul>
 <li>
@@ -753,10 +753,12 @@ implementation, you can just do it, for
 </div>
 </div>
 </div>
+</div>
+<div class="sect1">
+<h2 id="_scopes">Scopes</h2>
+<div class="sectionbody">
 <div class="sect2">
-<h3 id="_scopes">Scopes</h3>
-<div class="sect3">
-<h4 id="__windowscoped">@WindowScoped</h4>
+<h3 id="__windowscoped">@WindowScoped</h3>
 <div class="paragraph">
 <p>The window-scope is like a session per window. That means that the data
 is bound to a window/tab and it not shared between windows (like the
@@ -774,8 +776,8 @@ between windows.</p>
 </div>
 </div>
 </div>
-<div class="sect3">
-<h4 id="__viewaccessscoped">@ViewAccessScoped</h4>
+<div class="sect2">
+<h3 id="__viewaccessscoped">@ViewAccessScoped</h3>
 <div class="paragraph">
 <p>In case of conversations you have to un-scope beans manually (or they
 will be terminated automatically after a timeout). However, sometimes
@@ -815,22 +817,22 @@ tab' on a page with a @ViewAccessScoped
 </table>
 </div>
 </div>
-<div class="sect3">
-<h4 id="__groupedconversationscoped_from_deltaspike_0_6">@GroupedConversationScoped (From DeltaSpike 0.6)</h4>
+<div class="sect2">
+<h3 id="__groupedconversationscoped">@GroupedConversationScoped</h3>
 <div class="paragraph">
 <p>See (Grouped-)Conversations</p>
 </div>
 </div>
-<div class="sect3">
-<h4 id="__viewscoped">@ViewScoped</h4>
+<div class="sect2">
+<h3 id="__viewscoped">@ViewScoped</h3>
 <div class="paragraph">
 <p>DeltaSpike provides an CDI context for the JSF 2.0/2.1
 @javax.faces.bean.ViewScoped. You can simply annotate your bean with
 @javax.faces.bean.ViewScoped and @Named.</p>
 </div>
 </div>
-<div class="sect3">
-<h4 id="_jsf_2_0_scopes">JSF 2.0 Scopes</h4>
+<div class="sect2">
+<h3 id="_jsf_2_0_scopes">JSF 2.0 Scopes</h3>
 <div class="paragraph">
 <p>JSF 2.0 introduced new annotations as well as a new scope - the View
 Scope. CODI allows to use all the CDI mechanisms in beans annotated
@@ -863,8 +865,10 @@ CDI annotation.</p>
 </div>
 </div>
 </div>
-<div class="sect2">
-<h3 id="_integration_with_deltaspike_type_safe_messages">Integration with DeltaSpike Type-safe Messages</h3>
+</div>
+<div class="sect1">
+<h2 id="_integration_with_deltaspike_type_safe_messages">Integration with DeltaSpike Type-safe Messages</h2>
+<div class="sectionbody">
 <div class="paragraph">
 <p>You can use <a href="core.html#_messages_i18n">DeltaSpike type-safe messages</a>
 with JSF to provide i18n messages and test to an JSF appplicaton.</p>
@@ -933,10 +937,12 @@ javax.faces.component.UIInput.REQUIRED =
 </div>
 </div>
 </div>
+</div>
+<div class="sect1">
+<h2 id="_type_safe_view_configs">Type-safe View-Configs</h2>
+<div class="sectionbody">
 <div class="sect2">
-<h3 id="_type_safe_view_configs">Type-safe View-Configs</h3>
-<div class="sect3">
-<h4 id="_intro">Intro</h4>
+<h3 id="_intro">Intro</h3>
 <div class="paragraph">
 <p>Type-safe view-configs are static configs which can be used in
 combination with every view-technology which is based on Java. Currently
@@ -961,8 +967,8 @@ on the basic API provided by the Core. S
 custom concepts the same way DeltaSpike itself does.</p>
 </div>
 </div>
-<div class="sect3">
-<h4 id="_motivation">Motivation</h4>
+<div class="sect2">
+<h3 id="_motivation">Motivation</h3>
 <div class="paragraph">
 <p>Instead of learning the concepts and rules of view-configs provided by
 DeltaSpike, it might be easier for simple demos to just type some
@@ -1033,16 +1039,16 @@ more work <strong>initially</strong>?</p
 <p>If you are still not convinced, you just have to try it. You will see how your daily workflow benefits from it pretty soon.</p>
 </div>
 </div>
-<div class="sect3">
-<h4 id="_bean_discovery_mode_annotated">Bean-discovery-mode Annotated</h4>
+<div class="sect2">
+<h3 id="_bean_discovery_mode_annotated">Bean-discovery-mode Annotated</h3>
 <div class="paragraph">
 <p>CDI 1.1 introduced a concept called bean-discovery-mode. If you would
 like to use the mode <code>annotated</code>, please have a look at the tip at
 @ViewConfigRoot</p>
 </div>
 </div>
-<div class="sect3">
-<h4 id="_basic_api_usages">Basic API Usages</h4>
+<div class="sect2">
+<h3 id="_basic_api_usages">Basic API Usages</h3>
 <div class="paragraph">
 <p>While reading this section keep the following simple rules in mind:
 Meta-data gets inherited along the path of Java inheritance
@@ -1181,8 +1187,8 @@ navigation target of this method is with
 }</code></pre>
 </div>
 </div>
-<div class="sect4">
-<h5 id="_file_view_and_folder_folder_paths">File (@View) and Folder (@Folder) Paths</h5>
+<div class="sect3">
+<h4 id="_file_view_and_folder_folder_paths">File (@View) and Folder (@Folder) Paths</h4>
 <div class="paragraph">
 <p><code>@View</code> as well as <code>@Folder</code> are optional annotations. <code>@Folder</code> is only
 needed for using a different folder-name or for marking folder configs
@@ -1247,8 +1253,8 @@ Pages.Wizard1.Step1).</p>
 <code>@View#name</code> and <code>@View#extension</code> (or you register custom
 `NameBuilder`s inline or globally).</p>
 </div>
-<div class="sect5">
-<h6 id="__folder_name">@Folder#name</h6>
+<div class="sect4">
+<h5 id="__folder_name">@Folder#name</h5>
 <div class="paragraph">
 <p>The rules are pretty simple. You will get what you write. There are only
 two additional features:</p>
@@ -1304,8 +1310,8 @@ two additional features:</p>
 </ul>
 </div>
 </div>
-<div class="sect5">
-<h6 id="__view">@View</h6>
+<div class="sect4">
+<h5 id="__view">@View</h5>
 <div class="paragraph">
 <p>The same naming rules apply to <code>@View#basePath</code>. However, it is only
 valid to be used at view-config nodes which represent pages (&#8594; classes
@@ -1399,8 +1405,8 @@ inherited along the inheritance path.</p
 </div>
 </div>
 </div>
-<div class="sect4">
-<h5 id="_navigation_parameters">Navigation Parameters</h5>
+<div class="sect3">
+<h4 id="_navigation_parameters">Navigation Parameters</h4>
 <div class="paragraph">
 <p>Since the view-config is static, an approach to add parameters is
 needed. The following part shows different possibilities to add
@@ -1413,8 +1419,8 @@ using <code>@View(navigation = REDIRECT)
 <code>"includeViewParams=true"</code> and <code>@View(viewParams = INCLUDE)</code>.</p>
 </div>
 </div>
-<div class="sect4">
-<h5 id="_static_configuration_via_navigationparameter">Static Configuration via @NavigationParameter</h5>
+<div class="sect3">
+<h4 id="_static_configuration_via_navigationparameter">Static Configuration via @NavigationParameter</h4>
 <div class="paragraph">
 <p>In some cases, it is needed to add an information in any case. So you can
 annotate the view-config class with <code>@NavigationParameter</code>. Supported
@@ -1461,8 +1467,8 @@ them statically for particular methods:<
 }</code></pre>
 </div>
 </div>
-<div class="sect5">
-<h6 id="_dynamic_configuration_via_navigationparametercontext">Dynamic Configuration via NavigationParameterContext</h6>
+<div class="sect4">
+<h5 id="_dynamic_configuration_via_navigationparametercontext">Dynamic Configuration via NavigationParameterContext</h5>
 <div class="paragraph">
 <p>Instead of using parameters in a static fashion (as shown above), it is
 also possible to add them dynamically (e.g. in case of special
@@ -1494,8 +1500,8 @@ conditions).</p>
 </div>
 </div>
 </div>
-<div class="sect4">
-<h5 id="_security_integration_via_secured">Security Integration via @Secured</h5>
+<div class="sect3">
+<h4 id="_security_integration_via_secured">Security Integration via @Secured</h4>
 <div class="paragraph">
 <p>This annotation is a custom view-meta-data provided by the
 Security-module which allows to integrate third-party frameworks (or
@@ -1579,8 +1585,8 @@ this case you would need:</p>
 </div>
 </div>
 </div>
-<div class="sect4">
-<h5 id="_view_controller_callbacks_via_viewcontrollerref">View-Controller Callbacks via @ViewControllerRef</h5>
+<div class="sect3">
+<h4 id="_view_controller_callbacks_via_viewcontrollerref">View-Controller Callbacks via @ViewControllerRef</h4>
 <div class="paragraph">
 <p>This annotation is a custom view-meta-data provided by the JSF-module
 which allows to configure beans which should act as view-controllers.
@@ -1633,8 +1639,8 @@ display the exception.</p>
 </div>
 </div>
 </div>
-<div class="sect4">
-<h5 id="_referencing_views_via_viewref">Referencing Views via @ViewRef</h5>
+<div class="sect3">
+<h4 id="_referencing_views_via_viewref">Referencing Views via @ViewRef</h4>
 <div class="paragraph">
 <p>With <code>@ViewControllerRef#value</code> you can annotate a view-config class to
 bind (/reference) a controller to it. <code>@ViewRef#config</code> allows the same
@@ -1669,8 +1675,8 @@ many view/s.</p>
 pages).</p>
 </div>
 </div>
-<div class="sect4">
-<h5 id="_using_the_optional_viewnavigationhandler">Using the (Optional) ViewNavigationHandler</h5>
+<div class="sect3">
+<h4 id="_using_the_optional_viewnavigationhandler">Using the (Optional) ViewNavigationHandler</h4>
 <div class="paragraph">
 <p>With JSF you typically navigate with the action-method bound to a
 command-component. However, also JSF supports manual navigation via
@@ -1706,8 +1712,8 @@ process, since <code>ViewNavigationHandl
 navigation-handler (of JSF).</p>
 </div>
 </div>
-<div class="sect4">
-<h5 id="_configuring_a_default_error_view">Configuring a Default Error-View</h5>
+<div class="sect3">
+<h4 id="_configuring_a_default_error_view">Configuring a Default Error-View</h4>
 <div class="paragraph">
 <p>It is possible to mark one view-config class as default error-view. That
 means in case of errors it will be used as navigation target
@@ -1774,8 +1780,8 @@ in the JSF request-lifecycle for a navig
 transformed to a standard (implicit) JSF navigation.</p>
 </div>
 </div>
-<div class="sect4">
-<h5 id="_using_viewconfigresolver">Using ViewConfigResolver</h5>
+<div class="sect3">
+<h4 id="_using_viewconfigresolver">Using ViewConfigResolver</h4>
 <div class="paragraph">
 <p>If you would like to query view-meta-data yourself (for whatever
 reason), you can do that with <code>ViewConfigResolver</code>.</p>
@@ -1834,10 +1840,10 @@ configured (view-)meta-data and get and/
 </div>
 </div>
 </div>
+<div class="sect2">
+<h3 id="_advanced_api_usages">Advanced API Usages</h3>
 <div class="sect3">
-<h4 id="_advanced_api_usages">Advanced API Usages</h4>
-<div class="sect4">
-<h5 id="_creating_custom_meta_data_via_viewmetadata">Creating Custom Meta-Data via @ViewMetaData</h5>
+<h4 id="_creating_custom_meta_data_via_viewmetadata">Creating Custom Meta-Data via @ViewMetaData</h4>
 <div class="paragraph">
 <p>This meta-annotation allows to create custom view-meta-data which can be
 used for view-configs. By default meta-data of a lower level overrides
@@ -1867,8 +1873,8 @@ ViewConfigDescriptor viewConfigDescripto
 </div>
 </div>
 </div>
-<div class="sect4">
-<h5 id="_creating_custom_meta_data_via_stereotype">Creating Custom Meta-Data via @Stereotype</h5>
+<div class="sect3">
+<h4 id="_creating_custom_meta_data_via_stereotype">Creating Custom Meta-Data via @Stereotype</h4>
 <div class="paragraph">
 <p>Like with CDI itself you can encapsulate multiple view meta-data
 annotation in one annotation.</p>
@@ -1898,8 +1904,8 @@ are by default transparent.</p>
 well, once you annotate them with <code>@ViewMetaData</code>.</p>
 </div>
 </div>
-<div class="sect4">
-<h5 id="_creating_custom_callbacks_via_viewmetadata">Creating Custom Callbacks via @ViewMetaData</h5>
+<div class="sect3">
+<h4 id="_creating_custom_callbacks_via_viewmetadata">Creating Custom Callbacks via @ViewMetaData</h4>
 <div class="paragraph">
 <p>Via a custom ConfigPreProcessor it is possible to register custom
 callbacks dynamically. The following listing shows a view-config which
@@ -1964,8 +1970,8 @@ the type of the callback (= class of the
 parameter for <code>#getExecutableCallbackDescriptor</code>.</p>
 </div>
 </div>
-<div class="sect4">
-<h5 id="_creating_custom_inline_meta_data_via_inlineviewmetadata">Creating Custom inline Meta-Data via @InlineViewMetaData</h5>
+<div class="sect3">
+<h4 id="_creating_custom_inline_meta_data_via_inlineviewmetadata">Creating Custom inline Meta-Data via @InlineViewMetaData</h4>
 <div class="paragraph">
 <p>This annotation can be used for view-meta-data which can be placed on
 other classes than view-config-classes. It is used, for example, for <code>@ViewRef</code>.
@@ -1978,8 +1984,8 @@ meta-data representation which is used f
 </div>
 </div>
 </div>
-<div class="sect3">
-<h4 id="_path_validation">Path-Validation</h4>
+<div class="sect2">
+<h3 id="_path_validation">Path-Validation</h3>
 <div class="paragraph">
 <p>DeltaSpike (after v0.5) validates your configs out-of-the-box. The
 application will fail to start, if there is an invalid config (e.g. a
@@ -1994,10 +2000,10 @@ which restricts
 <code>org.apache.deltaspike.jsf.impl.config.view.ViewConfigPathValidator</code>.</p>
 </div>
 </div>
+<div class="sect2">
+<h3 id="_view_config_spi">View-Config SPI</h3>
 <div class="sect3">
-<h4 id="_view_config_spi">View-Config SPI</h4>
-<div class="sect4">
-<h5 id="_configdescriptorvalidator">ConfigDescriptorValidator</h5>
+<h4 id="_configdescriptorvalidator">ConfigDescriptorValidator</h4>
 <div class="paragraph">
 <p>Allows to validate the final view-config descriptors before they get
 deployed. Since the config-descriptor contains, for example, the final path, it is
@@ -2005,22 +2011,22 @@ also possible to validate if the corresp
 <code>@ViewConfigRoot</code> to configure 1-n validators.</p>
 </div>
 </div>
-<div class="sect4">
-<h5 id="_confignodeconverter">ConfigNodeConverter</h5>
+<div class="sect3">
+<h4 id="_confignodeconverter">ConfigNodeConverter</h4>
 <div class="paragraph">
 <p>Allows to provide custom strategies to process the nodes of the built
 config-tree. Use <code>@ViewConfigRoot</code> to configure a custom converter.</p>
 </div>
 </div>
-<div class="sect4">
-<h5 id="_configpreprocessor">ConfigPreProcessor</h5>
+<div class="sect3">
+<h4 id="_configpreprocessor">ConfigPreProcessor</h4>
 <div class="paragraph">
 <p>Allows to change the found meta-data (e.g. replace default values,
 callbacks,&#8230;&#8203;) or the <code>ViewConfigNode</code> itself.</p>
 </div>
 </div>
-<div class="sect4">
-<h5 id="_inlinemetadatatransformer">InlineMetaDataTransformer</h5>
+<div class="sect3">
+<h4 id="_inlinemetadatatransformer">InlineMetaDataTransformer</h4>
 <div class="paragraph">
 <p>Allows to transform an annotation annotated with <code>@InlineViewMetaData</code>
 to an annotation annotated with <code>@ViewMetaData</code>. This transformer is
@@ -2030,15 +2036,15 @@ the inline-meta-data needs a different s
 <code>@ViewControllerRef</code>.</p>
 </div>
 </div>
-<div class="sect4">
-<h5 id="_targetviewconfigprovider">TargetViewConfigProvider</h5>
+<div class="sect3">
+<h4 id="_targetviewconfigprovider">TargetViewConfigProvider</h4>
 <div class="paragraph">
 <p>Allows to provide a custom reference to <code>ViewConfig</code> classes (see for example
 <code>@InlineViewMetaData</code> and <code>@ViewRef</code>)</p>
 </div>
 </div>
-<div class="sect4">
-<h5 id="_viewconfiginheritancestrategy">ViewConfigInheritanceStrategy</h5>
+<div class="sect3">
+<h4 id="_viewconfiginheritancestrategy">ViewConfigInheritanceStrategy</h4>
 <div class="paragraph">
 <p>Allows to customize the inheritance-strategy for meta-data. For example,
 inheritance via standard java inheritance vs. inheritance via nested
@@ -2046,15 +2052,15 @@ interfaces. Use <code>@ViewConfigRoot</c
 inheritance-strategy.</p>
 </div>
 </div>
-<div class="sect4">
-<h5 id="_viewconfignode">ViewConfigNode</h5>
+<div class="sect3">
+<h4 id="_viewconfignode">ViewConfigNode</h4>
 <div class="paragraph">
 <p>Node-type used for building the meta-data-tree during the bootstrapping
 process.</p>
 </div>
 </div>
-<div class="sect4">
-<h5 id="__viewconfigroot">@ViewConfigRoot</h5>
+<div class="sect3">
+<h4 id="__viewconfigroot">@ViewConfigRoot</h4>
 <div class="paragraph">
 <p>Optional annotation which allows to provide custom implementations. Only
 annotate one <code>ViewConfig</code> class which represents the root node.</p>
@@ -2079,8 +2085,8 @@ example:</p>
 </div>
 </div>
 </div>
-<div class="sect3">
-<h4 id="_activation_of_custom_naming_conventions">Activation of Custom Naming Conventions</h4>
+<div class="sect2">
+<h3 id="_activation_of_custom_naming_conventions">Activation of Custom Naming Conventions</h3>
 <div class="paragraph">
 <p>DeltaSpike allows to customize the default naming convention via
 <code>View.DefaultBasePathBuilder</code> and/or <code>View.DefaultFileNameBuilder</code>
@@ -2093,11 +2099,10 @@ is possible via <code>Folder.folderNameB
 </div>
 </div>
 </div>
-<div class="sect2">
-<h3 id="__grouped_conversations">(Grouped-)Conversations</h3>
-<div class="paragraph">
-<p>Available from DeltaSpike 0.6.</p>
 </div>
+<div class="sect1">
+<h2 id="__grouped_conversations">(Grouped-)Conversations</h2>
+<div class="sectionbody">
 <div class="paragraph">
 <p>DeltaSpike conversations are based on the window-scope. Therefore, do not
 forget to add the <code>ds:windowId</code>
@@ -2254,8 +2259,8 @@ producer methods).</p>
 }</code></pre>
 </div>
 </div>
-<div class="sect3">
-<h4 id="_terminating_conversations">Terminating Conversations</h4>
+<div class="sect2">
+<h3 id="_terminating_conversations">Terminating Conversations</h3>
 <div class="paragraph">
 <p>You can inject the conversation via <code>@Inject</code> and use it to terminate
 the conversation immediately or you inject the
@@ -2384,8 +2389,8 @@ you can close them in a <code>@PostRende
 </table>
 </div>
 </div>
-<div class="sect3">
-<h4 id="_sub_conversation_groups">Sub-Conversation-Groups</h4>
+<div class="sect2">
+<h3 id="_sub_conversation_groups">Sub-Conversation-Groups</h3>
 <div class="paragraph">
 <p>Due to the parallel conversation concept of DeltaSpike there is no need
 of something like nested conversations. Just use them in parallel and
@@ -2470,10 +2475,12 @@ be closed as soon as you close the Impli
 </div>
 </div>
 </div>
+</div>
+<div class="sect1">
+<h2 id="_injection_in_jsf_artifacts">Injection in JSF Artifacts</h2>
+<div class="sectionbody">
 <div class="sect2">
-<h3 id="_injection_in_jsf_artifacts">Injection in JSF Artifacts</h3>
-<div class="sect3">
-<h4 id="_converter_and_validator">Converter and Validator</h4>
+<h3 id="_converter_and_validator">Converter and Validator</h3>
 <div class="paragraph">
 <p>Per default the JSF module of DeltaSpike handles JSF converters and validators as std. CDI beans and
 therefore it&#8217;s possible to use injection, lifecycle-callbacks, scope-annotations,&#8230;&#8203;
@@ -2481,8 +2488,8 @@ the same way as with any other CDI bean.
 The usage is the same as for <code>PhaseListener</code> s.</p>
 </div>
 </div>
-<div class="sect3">
-<h4 id="_phaselistener">PhaseListener</h4>
+<div class="sect2">
+<h3 id="_phaselistener">PhaseListener</h3>
 <div class="paragraph">
 <p>Once a std. JSF-<code>PhaseListener</code> is annotated with <code>@org.apache.deltaspike.jsf.api.listener.phase.JsfPhaseListener</code>,
 that <code>PhaseListener</code> gets active without additional config in <code>faces-config.xml</code>.
@@ -2523,10 +2530,12 @@ DeltaSpike itself uses it internally e.g
 </div>
 </div>
 </div>
+</div>
+<div class="sect1">
+<h2 id="_event_broadcasting">Event broadcasting</h2>
+<div class="sectionbody">
 <div class="sect2">
-<h3 id="_event_broadcasting">Event broadcasting</h3>
-<div class="sect3">
-<h4 id="_observe_faces_requests">Observe Faces-Requests</h4>
+<h3 id="_observe_faces_requests">Observe Faces-Requests</h3>
 <div class="paragraph">
 <p>It is possible to observe JSF-Requests via <code>@Observes</code> in combination with
 <code>@org.apache.deltaspike.core.api.lifecycle.Initialized</code> or
@@ -2548,8 +2557,8 @@ DeltaSpike itself uses it internally e.g
 </div>
 </div>
 </div>
-<div class="sect3">
-<h4 id="_beforephase_afterphase">BeforePhase / AfterPhase</h4>
+<div class="sect2">
+<h3 id="_beforephase_afterphase">BeforePhase / AfterPhase</h3>
 <div class="paragraph">
 <p>It is possible to observe JSF request-lifecycle phase-events via <code>@Observes</code> in combination with
 <code>@org.apache.deltaspike.jsf.api.listener.phase.BeforePhase</code> or
@@ -2571,8 +2580,8 @@ DeltaSpike itself uses it internally e.g
 </div>
 </div>
 </div>
-<div class="sect3">
-<h4 id="_jsf_systemevents">JSF SystemEvents</h4>
+<div class="sect2">
+<h3 id="_jsf_systemevents">JSF SystemEvents</h3>
 <div class="paragraph">
 <p>Following JSF SystemEvents can be observed via CDI:</p>
 </div>
@@ -2604,17 +2613,19 @@ DeltaSpike itself uses it internally e.g
 </div>
 </div>
 </div>
-<div class="sect2">
-<h3 id="_intergration_with_exception_control_from_deltaspike_0_6">Intergration with Exception Control (from DeltaSpike 0.6)</h3>
+</div>
+<div class="sect1">
+<h2 id="_integration_with_exception_control">Integration with Exception Control</h2>
+<div class="sectionbody">
 <div class="paragraph">
 <p>Whenever a unhandled exception occurs within the JSF lifecycle, our JSF
 ExceptionHandler provides a integration to the DeltaSpike Exception
 Control.</p>
 </div>
+<div class="sect2">
+<h3 id="_examples">Examples</h3>
 <div class="sect3">
-<h4 id="_examples">Examples</h4>
-<div class="sect4">
-<h5 id="_basic">Basic</h5>
+<h4 id="_basic">Basic</h4>
 <div class="listingblock">
 <div class="content">
 <pre>@ExceptionHandler
@@ -2631,8 +2642,8 @@ public class ApplicationExceptionHandler
 </div>
 </div>
 </div>
-<div class="sect4">
-<h5 id="_redirect">Redirect</h5>
+<div class="sect3">
+<h4 id="_redirect">Redirect</h4>
 <div class="listingblock">
 <div class="content">
 <pre class="CodeRay highlight"><code data-lang="java"><span class="annotation">@ExceptionHandler</span>
@@ -2653,8 +2664,8 @@ public class ApplicationExceptionHandler
 </div>
 </div>
 </div>
-<div class="sect3">
-<h4 id="_using_a_custom_qualifier_for_jsf_exceptions">Using a Custom Qualifier for JSF Exceptions</h4>
+<div class="sect2">
+<h3 id="_using_a_custom_qualifier_for_jsf_exceptions">Using a Custom Qualifier for JSF Exceptions</h3>
 <div class="paragraph">
 <p>In some cases, it is required to differentiate exceptions from JSF and
 normal exceptions. This is possible via a CDI qualifier:</p>
@@ -2696,8 +2707,10 @@ normal exceptions. This is possible via
 </div>
 </div>
 </div>
-<div class="sect2">
-<h3 id="_double_submit_prevention">Double-Submit Prevention</h3>
+</div>
+<div class="sect1">
+<h2 id="_double_submit_prevention">Double-Submit Prevention</h2>
+<div class="sectionbody">
 <div class="paragraph">
 <p>To avoid that the same content of a form gets submitted and therefore
 processed multiple times, it is possible to use the tag
@@ -2723,8 +2736,10 @@ within every JSF form-tag, you would lik
 </div>
 </div>
 </div>
-<div class="sect2">
-<h3 id="_tips">Tips</h3>
+</div>
+<div class="sect1">
+<h2 id="_tips">Tips</h2>
+<div class="sectionbody">
 <div class="paragraph">
 <p>Using errorView, DefaultErrorView or ViewNavigationHandler will fail
 with Weld versions older than 1.1.10 due to
@@ -2732,7 +2747,6 @@ with Weld versions older than 1.1.10 due
 </div>
 </div>
 </div>
-</div>
             </div>
         </div>
 
@@ -2767,34 +2781,44 @@ with Weld versions older than 1.1.10 due
                     <div class="fallback-toc">
                         <ul class="sectlevel1">
 <li><a href="#_overview">Overview</a></li>
-<li><a href="#_configure_your_projects">Configure Your Projects</a>
+<li><a href="#_project_setup">Project Setup</a>
 <ul class="sectlevel2">
 <li><a href="#_declare_jsf_module_dependencies">Declare JSF Module Dependencies</a></li>
 </ul>
 </li>
-<li><a href="#_use_the_module_features">Use the Module Features</a>
-<ul class="sectlevel2">
 <li><a href="#_jsf_messages">JSF Messages</a></li>
 <li><a href="#_multi_window_handling">Multi-Window Handling</a>
-<ul class="sectlevel3">
+<ul class="sectlevel2">
 <li><a href="#_background">Background</a>
-<ul class="sectlevel4">
+<ul class="sectlevel3">
 <li><a href="#_historic_considerations">Historic Considerations</a></li>
 <li><a href="#_how_jsf_2_changed_the_world">How JSF-2 Changed the World</a></li>
 <li><a href="#_standard_windowid_handling">Standard windowId Handling</a></li>
 </ul>
 </li>
 <li><a href="#_available_modes">Available Modes</a>
+<ul class="sectlevel3">
+<li><a href="#_clientwindow">CLIENTWINDOW</a>
+<ul class="sectlevel4">
+<li><a href="#_advantage">Advantage</a></li>
+<li><a href="#_disadvantage">Disadvantage</a></li>
+<li><a href="#_change_windowhandler_html">Change windowhandler.html</a></li>
+</ul>
+</li>
+<li><a href="#_lazy">LAZY</a>
 <ul class="sectlevel4">
-<li><a href="#_clientwindow">CLIENTWINDOW</a></li>
-<li><a href="#_lazy">LAZY</a></li>
+<li><a href="#_advantage_2">Advantage</a></li>
+<li><a href="#_disadvantage_2">Disadvantage</a></li>
+<li><a href="#_workflow_example">Workflow Example</a></li>
+</ul>
+</li>
 <li><a href="#_none">NONE</a></li>
 <li><a href="#_delegated">DELEGATED</a></li>
 <li><a href="#_custom">CUSTOM</a></li>
 </ul>
 </li>
 <li><a href="#_configuration">Configuration</a>
-<ul class="sectlevel4">
+<ul class="sectlevel3">
 <li><a href="#_ds_windowid">ds:windowId</a></li>
 <li><a href="#_ds_disableclientwindow">ds:disableClientWindow</a></li>
 <li><a href="#_number_of_active_windows">Number of Active Windows</a></li>
@@ -2806,25 +2830,34 @@ with Weld versions older than 1.1.10 due
 </ul>
 </li>
 <li><a href="#_scopes">Scopes</a>
-<ul class="sectlevel3">
+<ul class="sectlevel2">
 <li><a href="#__windowscoped">@WindowScoped</a></li>
 <li><a href="#__viewaccessscoped">@ViewAccessScoped</a></li>
-<li><a href="#__groupedconversationscoped_from_deltaspike_0_6">@GroupedConversationScoped (From DeltaSpike 0.6)</a></li>
+<li><a href="#__groupedconversationscoped">@GroupedConversationScoped</a></li>
 <li><a href="#__viewscoped">@ViewScoped</a></li>
 <li><a href="#_jsf_2_0_scopes">JSF 2.0 Scopes</a></li>
 </ul>
 </li>
 <li><a href="#_integration_with_deltaspike_type_safe_messages">Integration with DeltaSpike Type-safe Messages</a></li>
 <li><a href="#_type_safe_view_configs">Type-safe View-Configs</a>
-<ul class="sectlevel3">
+<ul class="sectlevel2">
 <li><a href="#_intro">Intro</a></li>
 <li><a href="#_motivation">Motivation</a></li>
 <li><a href="#_bean_discovery_mode_annotated">Bean-discovery-mode Annotated</a></li>
 <li><a href="#_basic_api_usages">Basic API Usages</a>
+<ul class="sectlevel3">
+<li><a href="#_file_view_and_folder_folder_paths">File (@View) and Folder (@Folder) Paths</a>
 <ul class="sectlevel4">
-<li><a href="#_file_view_and_folder_folder_paths">File (@View) and Folder (@Folder) Paths</a></li>
+<li><a href="#__folder_name">@Folder#name</a></li>
+<li><a href="#__view">@View</a></li>
+</ul>
+</li>
 <li><a href="#_navigation_parameters">Navigation Parameters</a></li>
-<li><a href="#_static_configuration_via_navigationparameter">Static Configuration via @NavigationParameter</a></li>
+<li><a href="#_static_configuration_via_navigationparameter">Static Configuration via @NavigationParameter</a>
+<ul class="sectlevel4">
+<li><a href="#_dynamic_configuration_via_navigationparametercontext">Dynamic Configuration via NavigationParameterContext</a></li>
+</ul>
+</li>
 <li><a href="#_security_integration_via_secured">Security Integration via @Secured</a></li>
 <li><a href="#_view_controller_callbacks_via_viewcontrollerref">View-Controller Callbacks via @ViewControllerRef</a></li>
 <li><a href="#_referencing_views_via_viewref">Referencing Views via @ViewRef</a></li>
@@ -2834,7 +2867,7 @@ with Weld versions older than 1.1.10 due
 </ul>
 </li>
 <li><a href="#_advanced_api_usages">Advanced API Usages</a>
-<ul class="sectlevel4">
+<ul class="sectlevel3">
 <li><a href="#_creating_custom_meta_data_via_viewmetadata">Creating Custom Meta-Data via @ViewMetaData</a></li>
 <li><a href="#_creating_custom_meta_data_via_stereotype">Creating Custom Meta-Data via @Stereotype</a></li>
 <li><a href="#_creating_custom_callbacks_via_viewmetadata">Creating Custom Callbacks via @ViewMetaData</a></li>
@@ -2843,7 +2876,7 @@ with Weld versions older than 1.1.10 due
 </li>
 <li><a href="#_path_validation">Path-Validation</a></li>
 <li><a href="#_view_config_spi">View-Config SPI</a>
-<ul class="sectlevel4">
+<ul class="sectlevel3">
 <li><a href="#_configdescriptorvalidator">ConfigDescriptorValidator</a></li>
 <li><a href="#_confignodeconverter">ConfigNodeConverter</a></li>
 <li><a href="#_configpreprocessor">ConfigPreProcessor</a></li>
@@ -2858,28 +2891,28 @@ with Weld versions older than 1.1.10 due
 </ul>
 </li>
 <li><a href="#__grouped_conversations">(Grouped-)Conversations</a>
-<ul class="sectlevel3">
+<ul class="sectlevel2">
 <li><a href="#_terminating_conversations">Terminating Conversations</a></li>
 <li><a href="#_sub_conversation_groups">Sub-Conversation-Groups</a></li>
 </ul>
 </li>
 <li><a href="#_injection_in_jsf_artifacts">Injection in JSF Artifacts</a>
-<ul class="sectlevel3">
+<ul class="sectlevel2">
 <li><a href="#_converter_and_validator">Converter and Validator</a></li>
 <li><a href="#_phaselistener">PhaseListener</a></li>
 </ul>
 </li>
 <li><a href="#_event_broadcasting">Event broadcasting</a>
-<ul class="sectlevel3">
+<ul class="sectlevel2">
 <li><a href="#_observe_faces_requests">Observe Faces-Requests</a></li>
 <li><a href="#_beforephase_afterphase">BeforePhase / AfterPhase</a></li>
 <li><a href="#_jsf_systemevents">JSF SystemEvents</a></li>
 </ul>
 </li>
-<li><a href="#_intergration_with_exception_control_from_deltaspike_0_6">Intergration with Exception Control (from DeltaSpike 0.6)</a>
-<ul class="sectlevel3">
+<li><a href="#_integration_with_exception_control">Integration with Exception Control</a>
+<ul class="sectlevel2">
 <li><a href="#_examples">Examples</a>
-<ul class="sectlevel4">
+<ul class="sectlevel3">
 <li><a href="#_basic">Basic</a></li>
 <li><a href="#_redirect">Redirect</a></li>
 </ul>
@@ -2890,8 +2923,6 @@ with Weld versions older than 1.1.10 due
 <li><a href="#_double_submit_prevention">Double-Submit Prevention</a></li>
 <li><a href="#_tips">Tips</a></li>
 </ul>
-</li>
-</ul>
                     </div>
                 
             </div>

Modified: deltaspike/site/trunk/content/staging/documentation/partial-bean.html
URL: http://svn.apache.org/viewvc/deltaspike/site/trunk/content/staging/documentation/partial-bean.html?rev=1682851&r1=1682850&r2=1682851&view=diff
==============================================================================
--- deltaspike/site/trunk/content/staging/documentation/partial-bean.html (original)
+++ deltaspike/site/trunk/content/staging/documentation/partial-bean.html Mon Jun  1 09:41:35 2015
@@ -281,7 +281,7 @@ table.CodeRay td.code>pre{padding:0}
 </div>
 </div>
 <div class="sect1">
-<h2 id="_configure_your_projects">Configure Your Projects</h2>
+<h2 id="_project_setup">Project Setup</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>The configuration information provided here is for Maven-based projects and it assumes that you have already declared the DeltaSpike version and DeltaSpike Core module for your projects, as detailed in <a href="configure.html">Configure DeltaSpike in Your Projects</a>. For Maven-independent projects, see <a href="configure.html#config-maven-indep">Configure DeltaSpike in Maven-independent Projects</a>.</p>
@@ -308,12 +308,6 @@ table.CodeRay td.code>pre{padding:0}
 <span class="tag">&lt;/dependency&gt;</span></code></pre>
 </div>
 </div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_use_the_module_features">Use the Module Features</h2>
-<div class="sectionbody">
 <div class="admonitionblock important">
 <table>
 <tr>
@@ -326,8 +320,12 @@ Currently CDI Interceptors applied via @
 </tr>
 </table>
 </div>
-<div class="sect2">
-<h3 id="__partialbeanbinding">@PartialBeanBinding</h3>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="__partialbeanbinding">@PartialBeanBinding</h2>
+<div class="sectionbody">
 <div class="paragraph">
 <p>Partial beans allow you to implement a generic handler to replace manual
 implementations of interfaces (or abstract classes).</p>
@@ -369,7 +367,6 @@ interface (/abstract class) to generic h
 </div>
 </div>
 </div>
-</div>
             </div>
         </div>
 
@@ -395,17 +392,13 @@ interface (/abstract class) to generic h
                     <div class="fallback-toc">
                         <ul class="sectlevel1">
 <li><a href="#_overview">Overview</a></li>
-<li><a href="#_configure_your_projects">Configure Your Projects</a>
+<li><a href="#_project_setup">Project Setup</a>
 <ul class="sectlevel2">
 <li><a href="#_declare_partial_bean_module_dependencies">Declare Partial-Bean Module Dependencies</a></li>
 </ul>
 </li>
-<li><a href="#_use_the_module_features">Use the Module Features</a>
-<ul class="sectlevel2">
 <li><a href="#__partialbeanbinding">@PartialBeanBinding</a></li>
 </ul>
-</li>
-</ul>
                     </div>
                 
             </div>

Modified: deltaspike/site/trunk/content/staging/documentation/scheduler.html
URL: http://svn.apache.org/viewvc/deltaspike/site/trunk/content/staging/documentation/scheduler.html?rev=1682851&r1=1682850&r2=1682851&view=diff
==============================================================================
--- deltaspike/site/trunk/content/staging/documentation/scheduler.html (original)
+++ deltaspike/site/trunk/content/staging/documentation/scheduler.html Mon Jun  1 09:41:35 2015
@@ -281,7 +281,7 @@ table.CodeRay td.code>pre{padding:0}
 </div>
 </div>
 <div class="sect1">
-<h2 id="_configure_your_projects">Configure Your Projects</h2>
+<h2 id="_project_setup">Project Setup</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>The configuration information provided here is for Maven-based projects and it assumes that you have already declared the DeltaSpike version and DeltaSpike Core module for your projects, as detailed in <a href="configure.html">Configure DeltaSpike in Your Projects</a>. For Maven-independent projects, see <a href="configure.html#config-maven-indep">Configure DeltaSpike in Maven-independent Projects</a>.</p>
@@ -350,10 +350,8 @@ table.CodeRay td.code>pre{padding:0}
 </div>
 </div>
 <div class="sect1">
-<h2 id="_use_the_module_features">Use the Module Features</h2>
+<h2 id="__scheduled">@Scheduled</h2>
 <div class="sectionbody">
-<div class="sect2">
-<h3 id="__scheduled">@Scheduled</h3>
 <div class="paragraph">
 <p>Just annotate your Quartz-Jobs with <code>@Scheduled</code> and they will get
 picked up and passed to the scheduler automatically (during the
@@ -424,8 +422,10 @@ schedule/install jobs dynamically.</p>
 </div>
 </div>
 </div>
-<div class="sect2">
-<h3 id="_manual_scheduler_control">Manual Scheduler Control</h3>
+</div>
+<div class="sect1">
+<h2 id="_manual_scheduler_control">Manual Scheduler Control</h2>
+<div class="sectionbody">
 <div class="paragraph">
 <p>Th SPI allows to control the scheduler (or integrate any other
 compatible scheduler as an alternative to Quartz2)</p>
@@ -471,15 +471,16 @@ start a job once (without registering it
 </div>
 </div>
 </div>
-<div class="sect2">
-<h3 id="_custom_scheduler">Custom Scheduler</h3>
+</div>
+<div class="sect1">
+<h2 id="_custom_scheduler">Custom Scheduler</h2>
+<div class="sectionbody">
 <div class="paragraph">
 <p>It is possible to replace the default integration with Quartz. Any scheduler that supports cron-expressions for job-classes can be used.
 For more information, see <a href="https://deltaspike.apache.org/javadoc/1.3.0/org/apache/deltaspike/scheduler/spi/Scheduler.html">Scheduler javadoc</a>.</p>
 </div>
 </div>
 </div>
-</div>
             </div>
         </div>
 
@@ -512,21 +513,17 @@ For more information, see <a href="https
                     <div class="fallback-toc">
                         <ul class="sectlevel1">
 <li><a href="#_overview">Overview</a></li>
-<li><a href="#_configure_your_projects">Configure Your Projects</a>
+<li><a href="#_project_setup">Project Setup</a>
 <ul class="sectlevel2">
 <li><a href="#_1_declare_scheduler_module_dependencies">1. Declare Scheduler Module Dependencies</a></li>
 <li><a href="#_2_declare_external_dependencies">2. Declare External Dependencies</a></li>
 <li><a href="#_3_declare_container_control_dependency">3. Declare Container Control dependency</a></li>
 </ul>
 </li>
-<li><a href="#_use_the_module_features">Use the Module Features</a>
-<ul class="sectlevel2">
 <li><a href="#__scheduled">@Scheduled</a></li>
 <li><a href="#_manual_scheduler_control">Manual Scheduler Control</a></li>
 <li><a href="#_custom_scheduler">Custom Scheduler</a></li>
 </ul>
-</li>
-</ul>
                     </div>
                 
             </div>

Modified: deltaspike/site/trunk/content/staging/documentation/security.html
URL: http://svn.apache.org/viewvc/deltaspike/site/trunk/content/staging/documentation/security.html?rev=1682851&r1=1682850&r2=1682851&view=diff
==============================================================================
--- deltaspike/site/trunk/content/staging/documentation/security.html (original)
+++ deltaspike/site/trunk/content/staging/documentation/security.html Mon Jun  1 09:41:35 2015
@@ -276,12 +276,27 @@ table.CodeRay td.code>pre{padding:0}
 <h2 id="_overview">Overview</h2>
 <div class="sectionbody">
 <div class="paragraph">
-<p>The Security module provides intercept and security checking on method calls. This module also enables integration of third-party security frameworks and custom security concepts.</p>
+<p>The Security module provides APIs for authorization of method invocations.</p>
+</div>
+<div class="paragraph">
+<p>There are two different APIs provided for two different approaches&#8201;&#8212;&#8201;one simple interceptor-style API and another for more complex scenarios.</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><strong><a href="#_simple_interceptor_style_authorization">Simple interceptor-style API</a>:</strong> the method that is to be secured is loosely coupled to a predicate method
+(called <em>authorizer</em> method) which decides whether the secured method invocation should proceed. Similarly to CDI
+interceptors, the secured method and the authorizer are tied together using a binding annotation&#8201;&#8212;&#8201;<code>@SecurityBindingType</code> in this case.</p>
+</li>
+<li>
+<p><strong><a href="#_advanced_authorization">Advanced API</a>:</strong> this API offers fine-grained control over the authorization process. Multiple independent <em>voters</em> can participate in making the authorization decision and possibly return <em>security violations</em> and thus prevent the method invocation. The voters share a common context. This API is suitable for integration with third-party security frameworks. Also, this API can be used to <a href="jsf.html#_security_integration_via_secured">secure JSF view access</a> when using the DeltaSpike JSF module.</p>
+</li>
+</ul>
 </div>
 </div>
 </div>
 <div class="sect1">
-<h2 id="_configure_your_projects">Configure Your Projects</h2>
+<h2 id="_project_setup">Project Setup</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>The configuration information provided here is for Maven-based projects and it assumes that you have already declared the DeltaSpike version and DeltaSpike Core module for your projects, as detailed in <a href="configure.html">Configure DeltaSpike in Your Projects</a>. For Maven-independent projects, see <a href="configure.html#config-maven-indep">Configure DeltaSpike in Maven-independent Projects</a>.</p>
@@ -310,7 +325,7 @@ table.CodeRay td.code>pre{padding:0}
 </div>
 </div>
 <div class="sect2">
-<h3 id="_2_enable_the_security_interceptor">2. Enable the Security Interceptor</h3>
+<h3 id="_2_enable_the_securityinterceptor">2. Enable the SecurityInterceptor</h3>
 <div class="paragraph">
 <p>For CDI 1.0 (or DeltaSpike v1.1.0 and earlier together with CDI 1.1+), you must enable the security interceptor in the project <code>beans.xml</code> file:</p>
 </div>
@@ -328,51 +343,44 @@ table.CodeRay td.code>pre{padding:0}
 </div>
 </div>
 <div class="sect1">
-<h2 id="_use_the_module_features">Use the Module Features</h2>
+<h2 id="_simple_interceptor_style_authorization">Simple interceptor-style authorization</h2>
 <div class="sectionbody">
-<div class="sect2">
-<h3 id="_securitybinding_for_class_and_method_invocations">SecurityBinding for Class and Method Invocations</h3>
 <div class="paragraph">
 <p>This feature of the Security module intercepts method calls and performs a security check before invocation is allowed to proceed.</p>
 </div>
 <div class="paragraph">
-<p>In order to use the DeltaSpike security module, you must first have
-installed the proper dependencies into the <code>pom.xml</code> file. Once this is
-complete, you may proceed to create a security parameter binding
-annotation. This is what we will use to add security behavior to our
-business classes and methods.</p>
+<p>The first piece of code required to use this API is a <em>security binding</em> annotation. This is what we will use to add security behavior to our business classes and methods.</p>
 </div>
 <div class="listingblock">
-<div class="title">Create the SecurityBinding</div>
+<div class="title">Create the security binding annotation</div>
 <div class="content">
 <pre class="CodeRay highlight"><code data-lang="java"><span class="annotation">@Retention</span>(value = RUNTIME)
 <span class="annotation">@Target</span>({TYPE, METHOD})
 <span class="annotation">@Documented</span>
 <span class="annotation">@SecurityBindingType</span>
-<span class="directive">public</span> <span class="annotation">@interface</span> CustomSecurityBinding {
-}</code></pre>
+<span class="directive">public</span> <span class="annotation">@interface</span> UserLoggedIn {}</code></pre>
 </div>
 </div>
 <div class="paragraph">
-<p>Next, we must define an Authorizer class to implement behavior for our
-custom SecurityBindingType. This class is simply a CDI bean which
-declares a @Secures method, qualified with the security binding
+<p>Next, we must define an <em>authorizer</em> class to implement behavior for our
+custom security binding type. This class is simply a CDI bean which
+declares a method annotated <code>@Secures</code>, qualified with the security binding
 annotation we created in the first step.</p>
 </div>
 <div class="paragraph">
-<p>This method has access to the InvocationContext of the method call, so
+<p>This method has access to the <code>InvocationContext</code> of the method call, so
 if we need to access parameter arguments, we can do so using the given
 context. Note that we may also inject other beans into the parameter
-list of our @Secures method.</p>
+list of our authorizer method.</p>
 </div>
 <div class="listingblock">
-<div class="title">Create the Authorizer</div>
+<div class="title">Create the authorizer</div>
 <div class="content">
 <pre class="CodeRay highlight"><code data-lang="java"><span class="annotation">@ApplicationScoped</span>
-<span class="directive">public</span> <span class="type">class</span> <span class="class">CustomAuthorizer</span>
+<span class="directive">public</span> <span class="type">class</span> <span class="class">LoggedInAuthorizer</span>
 {
     <span class="annotation">@Secures</span>
-    <span class="annotation">@CustomSecurityBinding</span>
+    <span class="annotation">@UserLoggedIn</span>
     <span class="directive">public</span> <span class="type">boolean</span> doSecuredCheck(InvocationContext invocationContext, BeanManager manager, <span class="predefined-type">Identity</span> identity) <span class="directive">throws</span> <span class="exception">Exception</span>
     {
         <span class="keyword">return</span> identity.isLoggedIn(); <span class="comment">// perform security check</span>
@@ -383,15 +391,15 @@ list of our @Secures method.</p>
 <div class="paragraph">
 <p>We can then use our new annotation to secure business or bean methods.
 This binding annotation may be placed on the entire class (securing all
-methods,) or on individual methods that you wish to secure.</p>
+methods) or on individual methods that you wish to secure.</p>
 </div>
 <div class="listingblock">
-<div class="title">Secure a Bean Method</div>
+<div class="title">Secure a bean method</div>
 <div class="content">
 <pre class="CodeRay highlight"><code data-lang="java"><span class="annotation">@ApplicationScoped</span>
 <span class="directive">public</span> <span class="type">class</span> <span class="class">SecuredBean1</span>
 {
-    <span class="annotation">@CustomSecurityBinding</span>
+    <span class="annotation">@UserLoggedIn</span>
     <span class="directive">public</span> <span class="type">void</span> doSomething(Thing thing)
     {
         thing.doSomething();
@@ -401,11 +409,11 @@ methods,) or on individual methods that
 </div>
 <div class="paragraph">
 <p>Next, we may access parameter values from the method invocation directly
-in our authorizer bean by creating custom @SecurityParameterBinding
+in our authorizer bean by creating custom <code>@SecurityParameterBinding</code>
 types; this is a simple step once we have completed the work above:</p>
 </div>
 <div class="listingblock">
-<div class="title">Create a Parameter Binding Annotation</div>
+<div class="title">Create a parameter binding annotation</div>
 <div class="content">
 <pre class="CodeRay highlight"><code data-lang="java"><span class="annotation">@Retention</span>(value = RUNTIME)
 <span class="annotation">@Target</span>({PARAMETER})
@@ -421,13 +429,13 @@ values as arguments into our authorizer
 security in our applications:</p>
 </div>
 <div class="listingblock">
-<div class="title">Update the Authorizer to use Parameter Binding</div>
+<div class="title">Update the authorizer to use parameter binding</div>
 <div class="content">
 <pre class="CodeRay highlight"><code data-lang="java"><span class="annotation">@ApplicationScoped</span>
 <span class="directive">public</span> <span class="type">class</span> <span class="class">CustomAuthorizer</span>
 {
     <span class="annotation">@Secures</span>
-    <span class="annotation">@CustomSecurityBinding</span>
+    <span class="annotation">@UserLoggedIn</span>
     <span class="directive">public</span> <span class="type">boolean</span> doSecuredCheck(InvocationContext invocationContext, BeanManager manager, <span class="predefined-type">Identity</span> identity, <span class="annotation">@CurrentThing</span> Thing thing) <span class="directive">throws</span> <span class="exception">Exception</span>
     {
         <span class="keyword">return</span> thing.hasMember(identity); <span class="comment">// perform security check against our method parameter</span>
@@ -444,7 +452,7 @@ security in our applications:</p>
 <pre class="CodeRay highlight"><code data-lang="java"><span class="annotation">@ApplicationScoped</span>
 <span class="directive">public</span> <span class="type">class</span> <span class="class">SecuredBean1</span>
 {
-    <span class="annotation">@CustomSecurityBinding</span>
+    <span class="annotation">@UserLoggedIn</span>
     <span class="directive">public</span> <span class="type">void</span> doSomething(<span class="annotation">@CurrentThing</span> Thing thing)
     {
         thing.doSomething();
@@ -467,7 +475,7 @@ case:</p>
 <pre class="CodeRay highlight"><code data-lang="java"><span class="annotation">@ApplicationScoped</span>
 <span class="directive">public</span> <span class="type">class</span> <span class="class">SecuredBean1</span>
 {
-    <span class="annotation">@CustomSecurityBinding</span>
+    <span class="annotation">@UserLoggedIn</span>
     <span class="directive">public</span> Thing loadSomething()
     {
         <span class="keyword">return</span> thingLoader.load();
@@ -477,7 +485,7 @@ case:</p>
 </div>
 <div class="paragraph">
 <p>Now you need to access the return value in the authorizer method. You
-can inject it using the @SecuredReturn annotation. Update the Authorizer
+can inject it using the <code>@SecuredReturn</code> annotation. Update the authorizer
 to use a secured return value:</p>
 </div>
 <div class="listingblock">
@@ -486,7 +494,7 @@ to use a secured return value:</p>
 <span class="directive">public</span> <span class="type">class</span> <span class="class">CustomAuthorizer</span>
 {
     <span class="annotation">@Secures</span>
-    <span class="annotation">@CustomSecurityBinding</span>
+    <span class="annotation">@UserLoggedIn</span>
     <span class="directive">public</span> <span class="type">boolean</span> doSecuredCheck(<span class="annotation">@SecuredReturn</span> Thing thing, <span class="predefined-type">Identity</span> identity) <span class="directive">throws</span> <span class="exception">Exception</span>
     {
         <span class="keyword">return</span> thing.hasMember(identity); <span class="comment">// perform security check against the return value</span>
@@ -497,38 +505,13 @@ to use a secured return value:</p>
 <p>Now the authorization will take place after the method invocation using
 the return value of the business method.</p>
 </div>
-<div class="listingblock">
-<div class="title">Complete the Parameter Binding</div>
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="java"><span class="annotation">@ApplicationScoped</span>
-<span class="directive">public</span> <span class="type">class</span> <span class="class">SecuredBean1</span>
-{
-    <span class="annotation">@CustomSecurityBinding</span>
-    <span class="directive">public</span> <span class="type">void</span> doSomething(<span class="annotation">@CurrentThing</span> Thing thing)
-    {
-        thing.doSomething();
-    }
-}</code></pre>
-</div>
 </div>
-<div class="paragraph">
-<p>Our method is now secured, and we are able to use given parameter values
-as part of our security authorizer!</p>
 </div>
-</div>
-<div class="sect2">
-<h3 id="_integrating_third_party_security_frameworks">Integrating Third-party Security Frameworks</h3>
-<div class="sect3">
-<h4 id="__secured">@Secured</h4>
+<div class="sect1">
+<h2 id="_advanced_authorization">Advanced authorization</h2>
+<div class="sectionbody">
 <div class="paragraph">
-<p><code>@Secured</code> is build on <code>@SecurityBindingType</code> and a very simple
-alternative to the rest of the security module. It is a basic hook to
-integrate a custom security concept, third-party frameworks, etc. It
-does not provide a full blown security concept like the rest of the
-security module, but other DeltaSpike modules ensure that the security
-concepts are integrated properly (e.g. correct behaviour within custom
-scope implementations,&#8230;&#8203;). It just allows to integrate other security
-frameworks easily.</p>
+<p>This is an alternative to the simple annotation-based interceptor-style API. This API uses the annotation <code>@Secured</code> and is mainly a hook for integration of custom security concepts and third-party frameworks. The DeltaSpike Security module is <em>not</em> a full application security solution, but some of the other DeltaSpike modules are security-enabled and use this API (e.g. correct behaviour within custom scope implementations,&#8230;&#8203;). Internally, this <code>@Secured</code> API uses the <code>@Secures</code>/<code>@SecurityBindingType</code> API.</p>
 </div>
 <div class="paragraph">
 <p>(In MyFaces CODI it was originally a CDI interceptor. This part changed
@@ -537,6 +520,9 @@ a bit, because between the interceptor a
 approach. Therefore the basic behaviour remains the same and you can
 think about it like an interceptor.)</p>
 </div>
+<div class="paragraph">
+<p>The entry point to this API is the <code>@Secured</code> annotation placed either on the whole class&#8201;&#8212;&#8201;enabling security for all methods&#8201;&#8212;&#8201;or on individual methods. The only other prerequisite is at least one <code>AccessDecisionVoter</code> implementation, explained in the next section.</p>
+</div>
 <div class="listingblock">
 <div class="title">Securing All Intercepted Methods of a CDI Bean</div>
 <div class="content">
@@ -562,11 +548,10 @@ think about it like an interceptor.)</p>
 }</code></pre>
 </div>
 </div>
-</div>
-<div class="sect3">
-<h4 id="_accessdecisionvoter">AccessDecisionVoter</h4>
+<div class="sect2">
+<h3 id="_accessdecisionvoter">AccessDecisionVoter</h3>
 <div class="paragraph">
-<p>This interface is (besides the <code>Secured</code> annotation) the most important
+<p>This interface is (besides the <code>@Secured</code> annotation) the most important
 part of the concept. Both artifact types are also the only required
 parts:</p>
 </div>
@@ -584,18 +569,14 @@ parts:</p>
 }</code></pre>
 </div>
 </div>
-<div class="paragraph">
-<p>[TODO] tip about the changed parameter/s</p>
-</div>
 </div>
-<div class="sect3">
-<h4 id="_securityviolation">SecurityViolation</h4>
+<div class="sect2">
+<h3 id="_securityviolation">SecurityViolation</h3>
 <div class="paragraph">
 <p>In case of a detected violation a <code>SecurityViolation</code> has to be added to
 the result returned by the <code>AccessDecisionVoter</code>.</p>
 </div>
 </div>
-</div>
 <div class="sect2">
 <h3 id="_abstractaccessdecisionvoter">AbstractAccessDecisionVoter</h3>
 <div class="paragraph">
@@ -617,8 +598,9 @@ This is a convenience class which allows
 }</code></pre>
 </div>
 </div>
-<div class="sect3">
-<h4 id="__secured_and_stereotypes_with_custom_meta_data">@Secured and Stereotypes with Custom Meta-data</h4>
+</div>
+<div class="sect2">
+<h3 id="__secured_and_stereotypes_with_custom_metadata">@Secured and stereotypes with custom metadata</h3>
 <div class="paragraph">
 <p>If there are multiple <code>AccessDecisionVoter</code> and maybe in different
 constellations, it is easier to provide an expressive CDI stereotypes for
@@ -644,10 +626,10 @@ place.</p>
 </div>
 </div>
 <div class="paragraph">
-<p>Furthermore, it is possible to provide custom meta-data easily.</p>
+<p>Furthermore, it is possible to provide custom metadata easily.</p>
 </div>
 <div class="listingblock">
-<div class="title">Stereotype of @Secured with Custom Meta-data</div>
+<div class="title">Stereotype of @Secured with custom metadata</div>
 <div class="content">
 <pre class="CodeRay highlight"><code data-lang="java"><span class="annotation">@Named</span>
 <span class="annotation">@Admin</span>(securityLevel=<span class="integer">3</span>)
@@ -679,156 +661,6 @@ place.</p>
 </div>
 </div>
 </div>
-</div>
-<div class="sect2">
-<h3 id="_making_intitially_requested_and_secured_page_available_for_redirect_after_login">Making Intitially Requested and Secured Page available for Redirect after Login</h3>
-<div class="paragraph">
-<p>DeltaSpike can be combined with pure CDI or with any other security
-frameworks (like PicketLink) to track the denied page and make it
-available after user logs in.</p>
-</div>
-<div class="sect3">
-<h4 id="_cdi_implementation_to_redirect_the_login_to_the_first_denied_page">CDI Implementation to Redirect the Login to the First Denied Page</h4>
-<div class="paragraph">
-<p>Your LoginService will fire a custom <code>UserLoggedInEvent</code></p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="java"><span class="directive">public</span> <span class="type">class</span> <span class="class">LoginService</span> <span class="directive">implements</span> <span class="predefined-type">Serializable</span> {
-
-    <span class="annotation">@Inject</span>
-    <span class="directive">private</span> <span class="predefined-type">Event</span>&lt;UserLoggedInEvent&gt; userLoggedInEvent;
-
-    <span class="directive">public</span> Usuario login(<span class="predefined-type">String</span> username, <span class="type">char</span><span class="type">[]</span> password) {
-        <span class="comment">//do the loggin process</span>
-        userLoggedInEvent.fire(<span class="keyword">new</span> UserLoggedInEvent());
-    }
-
-}</code></pre>
-</div>
-</div>
-<div class="paragraph">
-<p>Use @SessionScoped or @WindowScoped for AdminAccessDecisionVoter and
-store the denied page on your own.</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="java"><span class="annotation">@SessionScoped</span> <span class="comment">//or @WindowScoped</span>
-<span class="directive">public</span> <span class="type">class</span> <span class="class">AdminAccessDecisionVoter</span> <span class="directive">extends</span> AbstractAccessDecisionVoter {
-
-    <span class="annotation">@Inject</span>
-    <span class="directive">private</span> ViewConfigResolver viewConfigResolver;
-
-    <span class="directive">private</span> <span class="predefined-type">Class</span>&lt;? <span class="directive">extends</span> ViewConfig&gt; deniedPage = Pages.Home.class;
-
-    <span class="annotation">@Override</span>
-    <span class="directive">protected</span> <span class="type">void</span> checkPermission(AccessDecisionVoterContext context, <span class="predefined-type">Set</span>&lt;SecurityViolation&gt; violations) {
-        <span class="keyword">if</span>(loggedIn) {
-            <span class="comment">//...</span>
-        } <span class="keyword">else</span> {
-            violations.add(<span class="comment">/*...*/</span>);
-            deniedPage = viewConfigResolver.getViewConfigDescriptor(FacesContext.getCurrentInstance().getViewRoot().getViewId()).getConfigClass();
-        }
-    }
-
-    <span class="directive">public</span> <span class="predefined-type">Class</span>&lt;? <span class="directive">extends</span> ViewConfig&gt; getDeniedPage() {
-        <span class="keyword">try</span> {
-            <span class="keyword">return</span> deniedPage;
-        } <span class="keyword">finally</span> {
-            deniedPage = Pages.Home.class;
-        }
-    }
-}</code></pre>
-</div>
-</div>
-<div class="paragraph">
-<p>And in AuthenticationListener you inject AdminAccessDecisionVoter</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="java"><span class="directive">public</span> <span class="type">class</span> <span class="class">AuthenticationListener</span> {
-
-    <span class="annotation">@Inject</span>
-    <span class="directive">private</span> ViewNavigationHandler viewNavigationHandler;
-
-    <span class="annotation">@Inject</span>
-    <span class="directive">private</span> AdminAccessDecisionVoter adminAccessDecisionVoter;
-
-    <span class="directive">public</span> <span class="type">void</span> handleLoggedIn(<span class="annotation">@Observes</span> UserLoggedInEvent event) {
-        <span class="local-variable">this</span>.viewNavigationHandler.navigateTo(adminAccessDecisionVoter.getDeniedPage());
-    }
-
-}</code></pre>
-</div>
-</div>
-</div>
-<div class="sect3">
-<h4 id="_picketlink_implementation_to_redirect_the_login_to_the_first_denied_page">PicketLink Implementation to Redirect the Login to the First Denied Page</h4>
-<div class="paragraph">
-<p>Once that PicketLink handles the authentication for you, you only need
-to store the denied page and observe PicketLink <code>LoggedInEvent</code> to
-redirect you back to the denied page.</p>
-</div>
-<div class="paragraph">
-<p>Use @SessionScoped or @WindowScoped for AdminAccessDecisionVoter and
-store the denied page on your own.</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="java"><span class="annotation">@SessionScoped</span> <span class="comment">//or @WindowScoped</span>
-<span class="directive">public</span> <span class="type">class</span> <span class="class">AdminAccessDecisionVoter</span> <span class="directive">extends</span> AbstractAccessDecisionVoter {
-
-    <span class="annotation">@Inject</span>
-    <span class="directive">private</span> ViewConfigResolver viewConfigResolver;
-
-    <span class="directive">private</span> <span class="predefined-type">Class</span>&lt;? <span class="directive">extends</span> ViewConfig&gt; deniedPage = Pages.Home.class;
-
-    <span class="annotation">@Override</span>
-    <span class="directive">protected</span> <span class="type">void</span> checkPermission(AccessDecisionVoterContext context, <span class="predefined-type">Set</span>&lt;SecurityViolation&gt; violations) {
-
-        AuthorizationChecker authorizationChecker = BeanProvider.getContextualReference(AuthorizationChecker.class);
-        <span class="type">boolean</span> loggedIn = authorizationChecker.isLoggedIn();
-
-        <span class="keyword">if</span>(loggedIn) {
-            <span class="comment">//...</span>
-        } <span class="keyword">else</span> {
-            violations.add(<span class="comment">/*...*/</span>);
-            deniedPage = viewConfigResolver.getViewConfigDescriptor(FacesContext.getCurrentInstance().getViewRoot().getViewId()).getConfigClass();
-        }
-    }
-
-    <span class="directive">public</span> <span class="predefined-type">Class</span>&lt;? <span class="directive">extends</span> ViewConfig&gt; getDeniedPage() {
-        <span class="keyword">try</span> {
-            <span class="keyword">return</span> deniedPage;
-        } <span class="keyword">finally</span> {
-            deniedPage = Pages.Home.class;
-        }
-    }
-}</code></pre>
-</div>
-</div>
-<div class="paragraph">
-<p>And in AuthenticationListener you inject AdminAccessDecisionVoter</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="java"><span class="directive">public</span> <span class="type">class</span> <span class="class">AuthenticationListener</span> {
-
-    <span class="annotation">@Inject</span>
-    <span class="directive">private</span> ViewNavigationHandler viewNavigationHandler;
-
-    <span class="annotation">@Inject</span>
-    <span class="directive">private</span> AdminAccessDecisionVoter adminAccessDecisionVoter;
-
-    <span class="directive">public</span> <span class="type">void</span> handleLoggedIn(<span class="annotation">@Observes</span> LoggedInEvent event) {
-        <span class="local-variable">this</span>.viewNavigationHandler.navigateTo(adminAccessDecisionVoter.getDeniedPage());
-    }
-
-}</code></pre>
-</div>
-</div>
-</div>
-</div>
 <div class="sect2">
 <h3 id="_accessdecisionvotercontext">AccessDecisionVoterContext</h3>
 <div class="paragraph">
@@ -858,8 +690,9 @@ the results of the security check.</p>
 </li>
 </ul>
 </div>
-<div class="sect3">
-<h4 id="_securitystrategy_spi">SecurityStrategy SPI</h4>
+</div>
+<div class="sect2">
+<h3 id="_securitystrategy_spi">SecurityStrategy SPI</h3>
 <div class="paragraph">
 <p>The <code>SecurityStrategy</code> interface allows to provide a custom
 implementation which should be used for <code>@Secured</code>. Provide a custom
@@ -883,13 +716,39 @@ implementation as bean-class in combinat
 <i class="fa icon-tip" title="Tip"></i>
 </td>
 <td class="content">
-The configuration for global-alternatives is following the pattern:
-globalAlternatives.<code>&lt;interface-name&gt;</code>=<code>&lt;implementation-class-name&gt;</code>
+The configuration for global alternatives is following the pattern:
+<code>globalAlternatives.<em>&lt;interface-name&gt;</em>=<em>&lt;implementation-class-name&gt;</em></code>
 </td>
 </tr>
 </table>
 </div>
 </div>
+<div class="sect2">
+<h3 id="_examples">Examples</h3>
+<div class="sect3">
+<h4 id="_redirect_to_requested_page_after_login">Redirect to requested page after login</h4>
+<div class="paragraph">
+<p>DeltaSpike can be combined with pure CDI or with any other security
+frameworks (like PicketLink) to track the denied page and make it
+available after user logs in.</p>
+</div>
+<div class="paragraph">
+<p>An example of this use case is available in the examples module in the DeltaSpike repository:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><a href="https://github.com/apache/deltaspike/tree/master/deltaspike/examples/security-requested-page-after-login-cdi">Making initially requested secured page available for redirect after login with CDI</a></p>
+</li>
+<li>
+<p><a href="https://github.com/apache/deltaspike/tree/master/deltaspike/examples/security-requested-page-after-login-picketlink">Making initially requested secured page available for redirect after login with PicketLink</a></p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>The relevant classes are <code>AuthenticationListener</code> and <code>LoggedInAccessDecisionVoter</code>.</p>
+</div>
+</div>
 </div>
 </div>
 </div>
@@ -918,36 +777,24 @@ globalAlternatives.<code>&lt;interface-n
                     <div class="fallback-toc">
                         <ul class="sectlevel1">
 <li><a href="#_overview">Overview</a></li>
-<li><a href="#_configure_your_projects">Configure Your Projects</a>
+<li><a href="#_project_setup">Project Setup</a>
 <ul class="sectlevel2">
 <li><a href="#_1_declare_security_module_dependencies">1. Declare Security Module Dependencies</a></li>
-<li><a href="#_2_enable_the_security_interceptor">2. Enable the Security Interceptor</a></li>
+<li><a href="#_2_enable_the_securityinterceptor">2. Enable the SecurityInterceptor</a></li>
 </ul>
 </li>
-<li><a href="#_use_the_module_features">Use the Module Features</a>
+<li><a href="#_simple_interceptor_style_authorization">Simple interceptor-style authorization</a></li>
+<li><a href="#_advanced_authorization">Advanced authorization</a>
 <ul class="sectlevel2">
-<li><a href="#_securitybinding_for_class_and_method_invocations">SecurityBinding for Class and Method Invocations</a></li>
-<li><a href="#_integrating_third_party_security_frameworks">Integrating Third-party Security Frameworks</a>
-<ul class="sectlevel3">
-<li><a href="#__secured">@Secured</a></li>
 <li><a href="#_accessdecisionvoter">AccessDecisionVoter</a></li>
 <li><a href="#_securityviolation">SecurityViolation</a></li>
-</ul>
-</li>
-<li><a href="#_abstractaccessdecisionvoter">AbstractAccessDecisionVoter</a>
-<ul class="sectlevel3">
-<li><a href="#__secured_and_stereotypes_with_custom_meta_data">@Secured and Stereotypes with Custom Meta-data</a></li>
-</ul>
-</li>
-<li><a href="#_making_intitially_requested_and_secured_page_available_for_redirect_after_login">Making Intitially Requested and Secured Page available for Redirect after Login</a>
-<ul class="sectlevel3">
-<li><a href="#_cdi_implementation_to_redirect_the_login_to_the_first_denied_page">CDI Implementation to Redirect the Login to the First Denied Page</a></li>
-<li><a href="#_picketlink_implementation_to_redirect_the_login_to_the_first_denied_page">PicketLink Implementation to Redirect the Login to the First Denied Page</a></li>
-</ul>
-</li>
-<li><a href="#_accessdecisionvotercontext">AccessDecisionVoterContext</a>
-<ul class="sectlevel3">
+<li><a href="#_abstractaccessdecisionvoter">AbstractAccessDecisionVoter</a></li>
+<li><a href="#__secured_and_stereotypes_with_custom_metadata">@Secured and stereotypes with custom metadata</a></li>
+<li><a href="#_accessdecisionvotercontext">AccessDecisionVoterContext</a></li>
 <li><a href="#_securitystrategy_spi">SecurityStrategy SPI</a></li>
+<li><a href="#_examples">Examples</a>
+<ul class="sectlevel3">
+<li><a href="#_redirect_to_requested_page_after_login">Redirect to requested page after login</a></li>
 </ul>
 </li>
 </ul>

Modified: deltaspike/site/trunk/content/staging/documentation/servlet.html
URL: http://svn.apache.org/viewvc/deltaspike/site/trunk/content/staging/documentation/servlet.html?rev=1682851&r1=1682850&r2=1682851&view=diff
==============================================================================
--- deltaspike/site/trunk/content/staging/documentation/servlet.html (original)
+++ deltaspike/site/trunk/content/staging/documentation/servlet.html Mon Jun  1 09:41:35 2015
@@ -281,7 +281,7 @@ table.CodeRay td.code>pre{padding:0}
 </div>
 </div>
 <div class="sect1">
-<h2 id="_configure_your_projects">Configure Your Projects</h2>
+<h2 id="_project_setup">Project Setup</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>The configuration information provided here is for Maven-based projects and it assumes that you have already declared the DeltaSpike version and DeltaSpike Core module for your projects, as detailed in <a href="configure.html">Configure DeltaSpike in Your Projects</a>. For Maven-independent projects, see <a href="configure.html#config-maven-indep">Configure DeltaSpike in Maven-independent Projects</a>.</p>
@@ -309,11 +309,8 @@ table.CodeRay td.code>pre{padding:0}
 </div>
 </div>
 </div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_2_configure_listeners_and_filters">2. Configure Listeners and Filters</h2>
-<div class="sectionbody">
+<div class="sect2">
+<h3 id="_2_configure_listeners_and_filters">2. Configure Listeners and Filters</h3>
 <div class="paragraph">
 <p>In most cases there is no need for any additional configuration beside
 adding the required dependencies to your project, because all required
@@ -384,11 +381,10 @@ register the listeners and filters in yo
 </div>
 </div>
 </div>
+</div>
 <div class="sect1">
-<h2 id="_use_the_module_features">Use the Module Features</h2>
+<h2 id="_injectable_servlet_objects">Injectable Servlet Objects</h2>
 <div class="sectionbody">
-<div class="sect2">
-<h3 id="_injectable_servlet_objects">Injectable Servlet Objects</h3>
 <div class="paragraph">
 <p>The DeltaSpike Servlet module contains producers for many objects of a
 Servlet environment. All produces are using the special qualifier
@@ -404,8 +400,8 @@ injection of some Servlet objects out of
 <span class="directive">private</span> ServletObject servletObject;</code></pre>
 </div>
 </div>
-<div class="sect3">
-<h4 id="_servletcontext">ServletContext</h4>
+<div class="sect2">
+<h3 id="_servletcontext">ServletContext</h3>
 <div class="paragraph">
 <p>The <code>ServletContext</code> is made available in the application scope. It can
 be injected into any CDI bean like this:</p>
@@ -417,8 +413,8 @@ be injected into any CDI bean like this:
 </div>
 </div>
 </div>
-<div class="sect3">
-<h4 id="_servletrequest_httpservletrequest">ServletRequest / HttpServletRequest</h4>
+<div class="sect2">
+<h3 id="_servletrequest_httpservletrequest">ServletRequest / HttpServletRequest</h3>
 <div class="paragraph">
 <p>The <code>ServletRequest</code> is made available in the request scope. The current
 request can be injected into a CDI bean like this:</p>
@@ -439,8 +435,8 @@ request can be injected into a CDI bean
 </div>
 </div>
 </div>
-<div class="sect3">
-<h4 id="_servletresponse_httpservletresponse">ServletResponse / HttpServletResponse</h4>
+<div class="sect2">
+<h3 id="_servletresponse_httpservletresponse">ServletResponse / HttpServletResponse</h3>
 <div class="paragraph">
 <p>The <code>ServletResponse</code> is made available in the request scope. The
 current response can be injected into a CDI bean like this:</p>
@@ -461,8 +457,8 @@ current response can be injected into a
 </div>
 </div>
 </div>
-<div class="sect3">
-<h4 id="_httpsession">HttpSession</h4>
+<div class="sect2">
+<h3 id="_httpsession">HttpSession</h3>
 <div class="paragraph">
 <p>The <code>HttpSession</code> is made available in the session scope. You can inject
 the current session of a user into a CDI bean like this:</p>
@@ -478,8 +474,8 @@ the current session of a user into a CDI
 of a session.</p>
 </div>
 </div>
-<div class="sect3">
-<h4 id="_principal">Principal</h4>
+<div class="sect2">
+<h3 id="_principal">Principal</h3>
 <div class="paragraph">
 <p>The <code>Principal</code> is made available in the request scope. The current
 principal can be injected into a CDI bean like this:</p>
@@ -496,8 +492,10 @@ principal can be injected into a CDI bea
 </div>
 </div>
 </div>
-<div class="sect2">
-<h3 id="_servlet_event_propagation">Servlet Event Propagation</h3>
+</div>
+<div class="sect1">
+<h2 id="_servlet_event_propagation">Servlet Event Propagation</h2>
+<div class="sectionbody">
 <div class="paragraph">
 <p>The DeltaSpike Servlet module propagates a number of Servlet object
 lifecycle events to the CDI event bus. This allows regular CDI beans to
@@ -512,8 +510,8 @@ object, DeltaSpike uses the qualifiers <
 <p>The following sections shows which concrete Servlet objects are
 supported and how their lifecycle can be observed.</p>
 </div>
-<div class="sect3">
-<h4 id="_servlet_context_lifecycle_events">Servlet Context Lifecycle Events</h4>
+<div class="sect2">
+<h3 id="_servlet_context_lifecycle_events">Servlet Context Lifecycle Events</h3>
 <div class="paragraph">
 <p>The Servlet module supports initialization and destruction events for
 the <code>ServletContext</code>. These events can for example be used to detect
@@ -547,8 +545,8 @@ also simply remove the entry for the <co
 your <code>web.xml</code> to disable the events.</p>
 </div>
 </div>
-<div class="sect3">
-<h4 id="_request_and_response_lifecycle_events">Request and Response Lifecycle Events</h4>
+<div class="sect2">
+<h3 id="_request_and_response_lifecycle_events">Request and Response Lifecycle Events</h3>
 <div class="paragraph">
 <p>The Servlet module also supports initialization and destruction events
 for the <code>HttpServletRequest</code> and <code>HttpServletResponse</code>. These events can
@@ -601,8 +599,8 @@ also simply remove the entry for the <co
 <code>web.xml</code> to disable the events.</p>
 </div>
 </div>
-<div class="sect3">
-<h4 id="_session_lifecycle_events">Session Lifecycle Events</h4>
+<div class="sect2">
+<h3 id="_session_lifecycle_events">Session Lifecycle Events</h3>
 <div class="paragraph">
 <p>The last category of events supported by the DeltaSpike Servlet module
 are the lifecycle events for the user&#8217;s HTTP session. The following
@@ -637,7 +635,6 @@ your <code>web.xml</code> to disable the
 </div>
 </div>
 </div>
-</div>
             </div>
         </div>
 
@@ -663,16 +660,14 @@ your <code>web.xml</code> to disable the
                     <div class="fallback-toc">
                         <ul class="sectlevel1">
 <li><a href="#_overview">Overview</a></li>
-<li><a href="#_configure_your_projects">Configure Your Projects</a>
+<li><a href="#_project_setup">Project Setup</a>
 <ul class="sectlevel2">
 <li><a href="#_1_declare_servlet_module_dependencies">1. Declare Servlet Module Dependencies</a></li>
+<li><a href="#_2_configure_listeners_and_filters">2. Configure Listeners and Filters</a></li>
 </ul>
 </li>
-<li><a href="#_2_configure_listeners_and_filters">2. Configure Listeners and Filters</a></li>
-<li><a href="#_use_the_module_features">Use the Module Features</a>
-<ul class="sectlevel2">
 <li><a href="#_injectable_servlet_objects">Injectable Servlet Objects</a>
-<ul class="sectlevel3">
+<ul class="sectlevel2">
 <li><a href="#_servletcontext">ServletContext</a></li>
 <li><a href="#_servletrequest_httpservletrequest">ServletRequest / HttpServletRequest</a></li>
 <li><a href="#_servletresponse_httpservletresponse">ServletResponse / HttpServletResponse</a></li>
@@ -681,15 +676,13 @@ your <code>web.xml</code> to disable the
 </ul>
 </li>
 <li><a href="#_servlet_event_propagation">Servlet Event Propagation</a>
-<ul class="sectlevel3">
+<ul class="sectlevel2">
 <li><a href="#_servlet_context_lifecycle_events">Servlet Context Lifecycle Events</a></li>
 <li><a href="#_request_and_response_lifecycle_events">Request and Response Lifecycle Events</a></li>
 <li><a href="#_session_lifecycle_events">Session Lifecycle Events</a></li>
 </ul>
 </li>
 </ul>
-</li>
-</ul>
                     </div>
                 
             </div>



Mime
View raw message