Author: rsmeral
Date: Tue May  5 18:32:17 2015
New Revision: 1677877

URL: http://svn.apache.org/r1677877
Log:
Site checkin for project Apache DeltaSpike Documentation

Modified:
    deltaspike/site/trunk/content/documentation/configuration.html
    deltaspike/site/trunk/content/documentation/core.html
    deltaspike/site/trunk/content/documentation/jsf.html
    deltaspike/site/trunk/content/documentation/overview.html
    deltaspike/site/trunk/content/documentation/projectstage.html
    deltaspike/site/trunk/content/documentation/scheduler.html
    deltaspike/site/trunk/content/documentation/security.html
    deltaspike/site/trunk/content/documentation/servlet.html
    deltaspike/site/trunk/content/documentation/spi.html
    deltaspike/site/trunk/content/documentation/test-control.html

Modified: deltaspike/site/trunk/content/documentation/configuration.html
URL: 
http://svn.apache.org/viewvc/deltaspike/site/trunk/content/documentation/configuration.html?rev=1677877&r1=1677876&r2=1677877&view=diff
==============================================================================
--- deltaspike/site/trunk/content/documentation/configuration.html (original)
+++ deltaspike/site/trunk/content/documentation/configuration.html Tue May  5 
18:32:17 2015
@@ -194,23 +194,40 @@ body {
 
         <div id="toc" class="toc">
             <ul class="sectlevel1">
-<li><a href="#_configuration_basics">Configuration Basics</a>
+<li><a href="#_introduction">Introduction</a>
 <ul class="sectlevel2">
 <li><a href="#_benefits_for_production">Benefits for Production</a></li>
 <li><a href="#_drop_in_configuration">Drop-In Configuration</a></li>
 <li><a href="#_cdi_extension_configuration">CDI-Extension 
Configuration</a></li>
-<li><a href="#_userland_configuration">Userland Configuration</a></li>
 </ul>
 </li>
-<li><a href="#_configresolver">ConfigResolver</a>
+<li><a href="#_accessing_configured_values_using_configresolver">Accessing 
configured values using ConfigResolver</a>
 <ul class="sectlevel2">
+<li><a href="#_configresolver_methods">ConfigResolver methods</a>
+<ul class="sectlevel3">
 <li><a href="#_getpropertyvalue">getPropertyValue()</a></li>
 <li><a 
href="#_getprojectstageawarepropertyvalue">getProjectStageAwarePropertyValue()</a></li>
-<li><a 
href="#_getpropertyawarepropertyvalue">getPropertyAwarePropertyValue()</a></li>
+<li><a 
href="#_getpropertyawarepropertyvalue">getPropertyAwarePropertyValue()</a>
+<ul class="sectlevel4">
+<li><a href="#_property_value_resolution_sequence">Property value resolution 
sequence</a></li>
+</ul>
+</li>
 <li><a href="#_handling_of_default_values">Handling of Default Values</a></li>
 </ul>
 </li>
-<li><a href="#_configsource">ConfigSource</a>
+<li><a href="#_typedresolver_api">TypedResolver API</a>
+<ul class="sectlevel3">
+<li><a href="#_supported_types">Supported types</a></li>
+</ul>
+</li>
+<li><a 
href="#_injection_of_configured_values_into_beans_using_configproperty">Injection
 of configured values into beans using @ConfigProperty</a>
+<ul class="sectlevel3">
+<li><a href="#_custom_configproperty_types">Custom ConfigProperty 
types</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><a href="#_providing_configuration_using_configsources">Providing 
configuration using ConfigSources</a>
 <ul class="sectlevel2">
 <li><a href="#_configsources_provided_by_default">ConfigSources Provided by 
Default</a></li>
 <li><a href="#_reordering_of_the_default_order_of_configsources">Reordering of 
the Default Order of ConfigSources</a></li>
@@ -221,18 +238,18 @@ body {
 </li>
 </ul>
 </li>
-<li><a href="#_type_safe_configuration">Type-safe Configuration</a></li>
+<li><a href="#_filtering_configured_values">Filtering configured 
values</a></li>
 </ul>
             <hr>
             <div class="sect1">
-<h2 id="_configuration_basics">Configuration Basics</h2>
+<h2 id="_introduction">Introduction</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>The goal of the DeltaSpike configuration mechanism is to make it
 obsolete to touch released binaries for changing the configuration of
 your project. All values which are needed in your code (but should not
 be hardcoded as static final constants) can be maintained via
-DeltaSpikes own configuration mechanism in a very flexible and powerful
+DeltaSpike&#8217;s own configuration mechanism in a very flexible and powerful
 way.</p>
 </div>
 <div class="sect2">
@@ -284,28 +301,41 @@ the <code>ConfigResolver</code> which re
 application.</p>
 </div>
 </div>
-<div class="sect2">
-<h3 id="_userland_configuration">Userland Configuration</h3>
-<div class="paragraph">
-<p>DeltaSpike also provides a mechanism to inject those configured values
-using the <code>@ConfigProperty</code> CDI Qualifier.</p>
-</div>
-</div>
 </div>
 </div>
 <div class="sect1">
-<h2 id="_configresolver">ConfigResolver</h2>
+<h2 id="_accessing_configured_values_using_configresolver">Accessing 
configured values using ConfigResolver</h2>
 <div class="sectionbody">
 <div class="paragraph">
-<p>The <code>ConfigResolver</code> is the central point to pick up configured 
values
-in DeltaSpike.</p>
+<p>The <code>ConfigResolver</code> is the central point to access 
configuration in DeltaSpike. There are several different APIs
+ and ways to access the individual configured values, each suitable for a 
different purpose:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><code>ConfigResolver</code> methods for easy programmatic access to 
values</p>
+</li>
+<li>
+<p><code>TypedResolver</code> API for typed configuration values and precise 
control over resolution</p>
+</li>
+<li>
+<p><code>@ConfigProperty</code> for injection of configured values into 
beans</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>All three mechanisms are described in the following sections.</p>
 </div>
 <div class="sect2">
-<h3 id="_getpropertyvalue">getPropertyValue()</h3>
+<h3 id="_configresolver_methods">ConfigResolver methods</h3>
+<div class="paragraph">
+<p>ConfigResolver offers several methods for easy access to String values of 
configured properties.</p>
+</div>
+<div class="sect3">
+<h4 id="_getpropertyvalue">getPropertyValue()</h4>
 <div class="paragraph">
-<p>The method <code>ConfigResolver#getPropertyValue(String key)</code> allows 
to
-provide a string based key and returns the configured value as 
<code>String</code>,
-or <code>null</code> if no value has been found.</p>
+<p>The method <code>ConfigResolver#getPropertyValue(String key)</code> returns 
the value configured for a given key
+as <code>String</code>, or <code>null</code> if no value has been found.</p>
 </div>
 <div class="paragraph">
 <p><code>ConfigResolver#getAllPropertyValues(String key)</code> has a similar 
contract
@@ -322,14 +352,13 @@ configuration:</p>
 </div>
 </div>
 </div>
-<div class="sect2">
-<h3 
id="_getprojectstageawarepropertyvalue">getProjectStageAwarePropertyValue()</h3>
+<div class="sect3">
+<h4 
id="_getprojectstageawarepropertyvalue">getProjectStageAwarePropertyValue()</h4>
 <div class="paragraph">
 <p>The method
 <code>ConfigResolver#getProjectStageAwarePropertyValue(String key)</code> 
utilizes
 the <a href="projectstage.html">DeltaSpike ProjectStage</a> mechanism to allow
-configured values to depend on the current <code>ProjectStage</code> of the 
system
-we run on.</p>
+configured values to depend on the current <code>ProjectStage</code> of the 
running system.</p>
 </div>
 <div class="paragraph">
 <p>This is done by first looking up the ProjectStage (this internally
@@ -347,8 +376,8 @@ following lookup chain until we found a
 </ul>
 </div>
 </div>
-<div class="sect2">
-<h3 id="_getpropertyawarepropertyvalue">getPropertyAwarePropertyValue()</h3>
+<div class="sect3">
+<h4 id="_getpropertyawarepropertyvalue">getPropertyAwarePropertyValue()</h4>
 <div class="paragraph">
 <p>The method
 <code>ConfigResolver#getProjectStageAwarePropertyValue(String key, String 
property)</code>
@@ -356,17 +385,16 @@ first looks up the configured value of t
 value to determine the final lookup path. All those lookups take the
 <a href="projectstage.html">DeltaSpike ProjectStage</a> mechanism into 
account.</p>
 </div>
-<div class="paragraph">
-<p>Given we have the following code in our program:</p>
-</div>
 <div class="listingblock">
 <div class="content">
 <pre class="CodeRay highlight"><code data-lang="java"><span 
class="predefined-type">String</span> dbUserName = 
ConfigResolver.getPropertyAwarePropertyValue(<span class="string"><span 
class="delimiter">&quot;</span><span 
class="content">databaseconfig.username</span><span 
class="delimiter">&quot;</span></span>, <span class="string"><span 
class="delimiter">&quot;</span><span class="content">dbvendor</span><span 
class="delimiter">&quot;</span></span>);</code></pre>
 </div>
 </div>
+<div class="sect4">
+<h5 id="_property_value_resolution_sequence">Property value resolution 
sequence</h5>
 <div class="paragraph">
-<p>This will end up in the following lookup sequences. First we need to
-resolve the value of the property:</p>
+<p>The following lookup sequence will be performed until a value is found:
+First, the value of the <em>parameter</em> property is resolved:</p>
 </div>
 <div class="ulist">
 <ul>
@@ -385,13 +413,13 @@ the following lookup chain is used until
 <div class="ulist">
 <ul>
 <li>
-<p>key + '.' + property + projectstage, e.g. 
"databaseconfig.username.mysql.Production"</p>
+<p>key + '.' + propertyValue + '.' + projectstage, e.g. 
"databaseconfig.username.mysql.Production"</p>
 </li>
 <li>
-<p>key + '.' + property, e.g. "databaseconfig.username.mysql"</p>
+<p>key + '.' + propertyValue, e.g. "databaseconfig.username.mysql"</p>
 </li>
 <li>
-<p>key + '.' + projectstage, e.g. "databaseconfig.username.Production"</p>
+<p>key + '.' + projectStage, e.g. "databaseconfig.username.Production"</p>
 </li>
 <li>
 <p>key, e.g. "databaseconfig.username"</p>
@@ -399,8 +427,9 @@ the following lookup chain is used until
 </ul>
 </div>
 </div>
-<div class="sect2">
-<h3 id="_handling_of_default_values">Handling of Default Values</h3>
+</div>
+<div class="sect3">
+<h4 id="_handling_of_default_values">Handling of Default Values</h4>
 <div class="paragraph">
 <p>There is a 2nd variant of all those methods where it is possible to
 provide a default value which gets returned instead of <code>null</code> or if 
the
@@ -419,17 +448,215 @@ of the <code>ConfigSources</code>. The v
 cached in the ConfigResolver but might be cached in the ConfigSources.
 This makes the overall calculation a bit slower, but allows for values
 to change dynamically if someone likes to for example implement a
-<code>JmxConfigSource</code> (not yet part of DeltaSpike, but easily
-implementable).
+<code>JmxConfigSource</code> (not yet part of DeltaSpike, but easily 
implementable).
 </td>
 </tr>
 </table>
 </div>
 </div>
 </div>
+<div class="sect2">
+<h3 id="_typedresolver_api">TypedResolver API</h3>
+<div class="paragraph">
+<p>Very often the configured values represent more than just 
strings&#8201;&#8212;&#8201;number types and booleans are commonly used as
+configuration types. ConfigResolver provides a builder-style API to access 
configuration values as specific types.</p>
+</div>
+<div class="paragraph">
+<p>The API is accessed by a call to 
<code>ConfigResolver.resolve(propertyKey)</code>.</p>
+</div>
+<div class="paragraph">
+<p>The simplest usage of the API is resolution of a String property, 
equivalent to a call to
+<code>ConfigResolver.getPropertyValue(propertyKey)</code>.</p>
+</div>
+<div class="listingblock">
+<div class="title">Simple example of TypedResolver</div>
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="java"><span 
class="predefined-type">String</span> userName = ConfigResolver.resolve(<span 
class="string"><span class="delimiter">&quot;</span><span 
class="content">user.name</span><span 
class="delimiter">&quot;</span></span>).getValue();</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>The call to <code>ConfigResolver.resolve(..)</code> returns a builder which 
has methods to refine the resolution, including the
+following:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><code>as(Class&lt;N&gt; clazz)</code>&#8201;&#8212;&#8201;defines the 
return type of the property</p>
+</li>
+<li>
+<p><code>parameterizedBy(String propertyName)</code>&#8201;&#8212;&#8201;sets 
a parameter for the resolution, similarly as in
+<a 
href="#_getpropertyawarepropertyvalue">ConfigResolver.getPropertyAwarePropertyValue</a></p>
+</li>
+<li>
+<p><code>withCurrentProjectStage(boolean 
with)</code>&#8201;&#8212;&#8201;indicates whether the current ProjectStage 
should be taken into account
+for the resolution</p>
+</li>
+<li>
+<p><code>strictly(boolean strictly)</code>&#8201;&#8212;&#8201;indicates, 
whether the <a href="#_property_value_resolution_sequence">property value
+resolution sequence</a> should be taken into account. When set to true, the 
sequence is not followed.</p>
+</li>
+<li>
+<p><code>withDefault(T value)</code>&#8201;&#8212;&#8201;sets the default 
value, used in case the resolution returns <code>null</code></p>
+</li>
+<li>
+<p><code>getValue()</code>&#8201;&#8212;&#8201;terminates the builder and 
returns the resolved value with the appropriate type</p>
+</li>
+</ul>
+</div>
+<div class="listingblock">
+<div class="title">A more complete example of TypedResolver</div>
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="java"><span 
class="predefined-type">Integer</span> dbPort = ConfigResolver
+    .resolve(<span class="string"><span class="delimiter">&quot;</span><span 
class="content">db.port</span><span class="delimiter">&quot;</span></span>)
+    .as(<span class="predefined-type">Integer</span>.class)
+    .withProjectStage(<span class="predefined-constant">true</span>)
+    .parameterizedBy(<span class="string"><span 
class="delimiter">&quot;</span><span class="content">db.vendor</span><span 
class="delimiter">&quot;</span></span>)
+    .withDefault(<span class="integer">3306</span>)
+    .getValue();</code></pre>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_supported_types">Supported types</h4>
+<div class="paragraph">
+<p>The types supported out of the box include: String, Integer, Long, Float, 
Double, Boolean, Class.
+Custom types can be supported by providing an implementation of the 
<code>ConfigResolver.Converter</code> interface.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="java"><span 
class="predefined-type">Date</span> deadline = ConfigResolver.resolve(<span 
class="string"><span class="delimiter">&quot;</span><span 
class="content">deadline</span><span 
class="delimiter">&quot;</span></span>).as(<span 
class="predefined-type">Date</span>.class, <span class="keyword">new</span> 
CustomDateConverter()).getValue());</code></pre>
+</div>
+</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">CustomDateConverter</span> <span 
class="directive">implements</span> ConfigResolver.Converter&lt;<span 
class="predefined-type">Date</span>&gt; {
+
+    <span class="annotation">@Override</span>
+    <span class="directive">public</span> <span 
class="predefined-type">Date</span> convert(<span 
class="predefined-type">String</span> value)
+    {
+        <span class="predefined-type">String</span><span 
class="type">[]</span> parts = value.split(<span class="string"><span 
class="delimiter">&quot;</span><span class="content">-</span><span 
class="delimiter">&quot;</span></span>);
+        <span class="keyword">return</span> <span class="keyword">new</span> 
<span class="predefined-type">GregorianCalendar</span>(<span 
class="predefined-type">Integer</span>.valueOf(parts[<span 
class="integer">0</span>]), <span 
class="predefined-type">Integer</span>.valueOf(parts[<span 
class="integer">1</span>]),
+                <span 
class="predefined-type">Integer</span>.valueOf(parts[<span 
class="integer">2</span>])).getTime();
+    }
+}</code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 
id="_injection_of_configured_values_into_beans_using_configproperty">Injection 
of configured values into beans using @ConfigProperty</h3>
+<div class="paragraph">
+<p>DeltaSpike provides a way to inject configured values into your code via 
the qualifier <code>@ConfigProperty</code>.
+The supported types are the same as the <a href="#_supported_types">supported 
types of the TypedResolver</a>.</p>
+</div>
+<div class="listingblock">
+<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">SomeRandomService</span>
+{
+    <span class="annotation">@Inject</span>
+    <span class="annotation">@ConfigProperty</span>(name = <span 
class="string"><span class="delimiter">&quot;</span><span 
class="content">endpoint.poll.interval</span><span 
class="delimiter">&quot;</span></span>)
+    <span class="directive">private</span> <span 
class="predefined-type">Integer</span> pollInterval;
+
+    <span class="annotation">@Inject</span>
+    <span class="annotation">@ConfigProperty</span>(name = <span 
class="string"><span class="delimiter">&quot;</span><span 
class="content">endpoint.poll.servername</span><span 
class="delimiter">&quot;</span></span>)
+    <span class="directive">private</span> <span 
class="predefined-type">String</span> pollUrl;
+
+    ...
+ }</code></pre>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_custom_configproperty_types">Custom ConfigProperty types</h4>
+<div class="paragraph">
+<p>Custom types can be injected using <code>@ConfigProperty</code> by 
providing a custom producer.
+DeltaSpike provides a base implementation for custom producers in the class 
<code>BaseConfigPropertyProducer</code>
+which offers the following methods:
+* <code>getStringPropertyValue</code>&#8201;&#8212;&#8201;looks for the 
property name in <code>@ConfigProperty</code> annotation on the injection point.
+If not found, it looks for it in other annotations on the injection point.
+* <code>getPropertyValue</code>&#8201;&#8212;&#8201;a shortcut to <a 
href="#_configresolver">ConfigResolver#getProjectStageAwarePropertyValue</a>
+* <code>getAnnotation</code>&#8201;&#8212;&#8201;extracts any annotation type 
from the injection point, useful when a custom annotation
+is used instead of <code>@ConfigProperty</code></p>
+</div>
+<div class="paragraph">
+<p>The following example uses <code>getStringPropertyValue</code> and a custom 
<code>@Location</code> annotation annotated <code>@ConfigProperty</code>.
+In such case, the <code>@Location</code> annotation is bound to a single fixed 
property name and acts as a type-safe replacement
+for <code>@ConfigProperty(name = "locationId")</code>.</p>
+</div>
+<div class="listingblock">
+<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">CustomConfigPropertyProducer</span> <span 
class="directive">extends</span> BaseConfigPropertyProducer {
+
+    <span class="annotation">@Produces</span>
+    <span class="annotation">@Dependent</span>
+    <span class="annotation">@Location</span>
+    <span class="directive">public</span> LocationId 
produceLocationId(InjectionPoint injectionPoint)
+    {
+        <span class="predefined-type">String</span> configuredValue = 
getStringPropertyValue(injectionPoint);
+
+        <span class="keyword">return</span> 
LocationId.valueOf(configuredValue.trim().toUpperCase());
+    }
+}</code></pre>
+</div>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="java"><span 
class="annotation">@Target</span>({ FIELD, METHOD })
+<span class="annotation">@Retention</span>(RUNTIME)
+<span class="annotation">@ConfigProperty</span>(name = <span 
class="string"><span class="delimiter">&quot;</span><span 
class="content">locationId</span><span class="delimiter">&quot;</span></span>, 
defaultValue = <span class="string"><span class="delimiter">&quot;</span><span 
class="content">LOCATION_X</span><span class="delimiter">&quot;</span></span>)
+<span class="annotation">@Qualifier</span>
+<span class="directive">public</span> <span 
class="annotation">@interface</span> Location {}</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>The <code>@ConfigProperty</code> annotation doesn&#8217;t need to be used 
at all. Instead, a custom annotation can be provided and
+obtained in the producer using <code>getAnnotation</code> and 
<code>getPropertyValue</code>:</p>
+</div>
+<div class="listingblock">
+<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">NumberConfigPropertyProducer</span> <span 
class="directive">extends</span> BaseConfigPropertyProducer
+{
+    <span class="annotation">@Produces</span>
+    <span class="annotation">@Dependent</span>
+    <span class="annotation">@NumberConfig</span>(name = <span 
class="string"><span class="delimiter">&quot;</span><span 
class="content">unused</span><span class="delimiter">&quot;</span></span>)
+    <span class="directive">public</span> <span 
class="predefined-type">Float</span> produceNumberProperty(InjectionPoint 
injectionPoint) <span class="directive">throws</span> <span 
class="exception">ParseException</span>
+    {
+        <span class="comment">// resolve the annotation</span>
+        NumberConfig metaData = getAnnotation(injectionPoint, 
NumberConfig.class);
+
+        <span class="comment">// get the configured value from the underlying 
configuration system</span>
+        <span class="predefined-type">String</span> configuredValue = 
getPropertyValue(metaData.name(), metaData.defaultValue());
+
+        <span class="comment">// format according to the given pattern</span>
+        <span class="predefined-type">DecimalFormat</span> df = <span 
class="keyword">new</span> <span 
class="predefined-type">DecimalFormat</span>(metaData.pattern(), <span 
class="keyword">new</span> <span 
class="predefined-type">DecimalFormatSymbols</span>(<span 
class="predefined-type">Locale</span>.US));
+        <span class="keyword">return</span> 
df.parse(configuredValue).floatValue();
+    }
+}</code></pre>
+</div>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="java"><span 
class="annotation">@Qualifier</span>
+<span class="directive">public</span> <span 
class="annotation">@interface</span> NumberConfig
+{
+    <span class="annotation">@Nonbinding</span>
+    <span class="predefined-type">String</span> name();
+
+    <span class="annotation">@Nonbinding</span>
+    <span class="predefined-type">String</span> defaultValue() <span 
class="keyword">default</span> ConfigProperty.NULL;
+
+    <span class="annotation">@Nonbinding</span>
+    <span class="predefined-type">String</span> pattern() <span 
class="keyword">default</span> <span class="string"><span 
class="delimiter">&quot;</span><span class="content">#0.00</span><span 
class="delimiter">&quot;</span></span>;
+}</code></pre>
+</div>
+</div>
+</div>
+</div>
+</div>
 </div>
 <div class="sect1">
-<h2 id="_configsource">ConfigSource</h2>
+<h2 id="_providing_configuration_using_configsources">Providing configuration 
using ConfigSources</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>A <code>ConfigSource</code> is exactly what its name says: a source for 
configured
@@ -568,8 +795,8 @@ implementations provided by DeltaSpike d
 <h4 id="_propertyfileconfig">PropertyFileConfig</h4>
 <div class="paragraph">
 <p>For registering all your own property files of a certain name in your
-classpath to get picked up as <code>ConfigSource`s you can also provide a
-class which implements the `PropertyFileConfig</code> interface.</p>
+classpath to get picked up as ConfigSources you can also provide a
+class which implements the <code>PropertyFileConfig</code> interface.</p>
 </div>
 <div class="paragraph">
 <p>The method <code>isOptional</code> indicates whether your custom property 
file is mandatory.
@@ -617,27 +844,42 @@ dependency to the module that contains t
 </div>
 </div>
 <div class="sect1">
-<h2 id="_type_safe_configuration">Type-safe Configuration</h2>
+<h2 id="_filtering_configured_values">Filtering configured values</h2>
 <div class="sectionbody">
 <div class="paragraph">
-<p>DeltaSpike provides a way to directly inject configured values into your
-code via the qualifier <code>@ConfigProperty</code>.</p>
+<p>It is possible to perform filtering on all configured values on their way 
between the ConfigSource and user code.
+This might be useful for example for decryption of values from an encrypted 
ConfigSource or to hide passwords from a
+log.</p>
+</div>
+<div class="paragraph">
+<p>DeltaSpike doesn&#8217;t provide any filters by default but custom filters 
can be provided by implementing the
+<code>ConfigFilter</code> interface. This is then enabled either using the 
ServiceLoader mechanism or by calling
+<code>ConfigResolver.addConfigFilter(ConfigFilter)</code>. Provided 
ConfigFilters are then enabled for the whole application.</p>
+</div>
+<div class="paragraph">
+<p>Once some filters are provided, all operations of ConfigResolver return 
filtered values.</p>
 </div>
 <div class="listingblock">
+<div class="title">A custom ConfigFilter</div>
 <div class="content">
-<pre>@ApplicationScoped
-public class SomeRandomService
+<pre class="CodeRay highlight"><code data-lang="java"><span 
class="directive">public</span> <span class="type">class</span> <span 
class="class">DecryptingConfigFilter</span> <span 
class="directive">implements</span> ConfigFilter
 {
-    @Inject
-    @ConfigProperty(name = "endpoint.poll.interval")
-    private Integer pollInterval;
-
-    @Inject
-    @ConfigProperty(name = "endpoint.poll.servername")
-    private String pollUrl;
+    <span class="annotation">@Override</span>
+    <span class="directive">public</span> <span 
class="predefined-type">String</span> filterValue(<span 
class="predefined-type">String</span> key, <span 
class="predefined-type">String</span> value)
+    {
+        <span class="keyword">if</span> (key.contains(<span 
class="string"><span class="delimiter">&quot;</span><span 
class="content">encrypted</span><span class="delimiter">&quot;</span></span>))
+        {
+            <span class="keyword">return</span> decrypt(value);
+        }
+        <span class="keyword">return</span> value;
+    }
 
-    ...
- }</pre>
+    <span class="annotation">@Override</span>
+    <span class="directive">public</span> <span 
class="predefined-type">String</span> filterValueForLog(<span 
class="predefined-type">String</span> key, <span 
class="predefined-type">String</span> value)
+    {
+        <span class="keyword">return</span> <span class="string"><span 
class="delimiter">&quot;</span><span class="content">&lt;value 
encrypted&gt;</span><span class="delimiter">&quot;</span></span>;
+    }
+}</code></pre>
 </div>
 </div>
 </div>

Modified: deltaspike/site/trunk/content/documentation/core.html
URL: 
http://svn.apache.org/viewvc/deltaspike/site/trunk/content/documentation/core.html?rev=1677877&r1=1677876&r2=1677877&view=diff
==============================================================================
--- deltaspike/site/trunk/content/documentation/core.html (original)
+++ deltaspike/site/trunk/content/documentation/core.html Tue May  5 18:32:17 
2015
@@ -194,15 +194,13 @@ body {
 
         <div id="toc" class="toc">
             <ul class="sectlevel1">
-<li><a href="#_overview">Overview</a></li>
-<li><a href="#_configure_your_projects">Configure Your Projects</a></li>
-<li><a href="#_use_the_module_features">Use the Module Features</a>
+<li><a href="#_deltaspike_configuration">DeltaSpike Configuration</a>
 <ul class="sectlevel2">
-<li><a href="#_core_api">Core - API</a>
-<ul class="sectlevel3">
-<li><a href="#_deltaspike_configuration">DeltaSpike Configuration</a></li>
+<li><a href="#_internal_configuration">Internal configuration</a></li>
+</ul>
+</li>
 <li><a href="#_beanprovider">BeanProvider</a>
-<ul class="sectlevel4">
+<ul class="sectlevel2">
 <li><a href="#_dependentprovider">DependentProvider</a></li>
 </ul>
 </li>
@@ -210,41 +208,62 @@ body {
 <li><a href="#_annotationinstanceprovider">AnnotationInstanceProvider</a></li>
 <li><a href="#_type_safe_projectstage">Type-safe ProjectStage</a></li>
 <li><a href="#__exclude">@Exclude</a>
-<ul class="sectlevel4">
+<ul class="sectlevel2">
 <li><a href="#_custom_expressioninterpreter">Custom 
ExpressionInterpreter</a></li>
 </ul>
 </li>
 <li><a href="#_type_safe_view_config">Type-safe View-Config</a></li>
 <li><a href="#_literals">Literals</a></li>
-<li><a href="#_messages_and_i18n">Messages and I18n</a></li>
+<li><a href="#_messages_and_i18n">Messages and i18n</a>
+<ul class="sectlevel2">
 <li><a href="#_dynamic_message_builder">Dynamic Message Builder</a>
-<ul class="sectlevel4">
+<ul class="sectlevel3">
 <li><a href="#_creating_message_instances">Creating Message Instances</a></li>
-<li><a href="#_customizing_the_message_context">Customizing the Message 
Context</a></li>
+<li><a href="#_customizing_the_message_context">Customizing the Message 
Context</a>
+<ul class="sectlevel4">
+<li><a href="#_messageresolver">MessageResolver</a></li>
+<li><a href="#_messageinterpolator">MessageInterpolator</a></li>
+<li><a href="#_localeresolver">LocaleResolver</a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li><a href="#_injecting_resources">Injecting Resources</a>
+<ul class="sectlevel2">
+<li><a href="#_custom_resource_providers">Custom resource providers</a></li>
 </ul>
 </li>
-<li><a href="#_injecting_resources">Injecting Resources</a></li>
 <li><a href="#_exception_control">Exception Control</a>
-<ul class="sectlevel4">
+<ul class="sectlevel2">
 <li><a href="#_usage">Usage</a></li>
-<li><a href="#_exception_handlers">Exception Handlers</a></li>
+<li><a href="#_exception_handlers">Exception Handlers</a>
+<ul class="sectlevel3">
+<li><a href="#__exceptionhandler">@ExceptionHandler</a></li>
+<li><a href="#__handles_and_beforehandles">@Handles and @BeforeHandles</a></li>
+<li><a href="#_ordinal">Ordinal</a></li>
+</ul>
+</li>
 <li><a href="#_exception_chain_processing">Exception Chain Processing</a></li>
-<li><a href="#_apis_for_exception_information_and_flow_control">APIs for 
Exception Information and Flow Control</a></li>
+<li><a href="#_apis_for_exception_information_and_flow_control">APIs for 
Exception Information and Flow Control</a>
+<ul class="sectlevel3">
+<li><a href="#_exceptionevent">ExceptionEvent</a></li>
+</ul>
+</li>
 </ul>
 </li>
 <li><a href="#_scopes">Scopes</a>
-<ul class="sectlevel4">
+<ul class="sectlevel2">
 <li><a href="#__windowscoped">@WindowScoped</a></li>
 <li><a href="#__viewaccessscoped">@ViewAccessScoped</a></li>
 <li><a href="#__groupedconversationscoped">@GroupedConversationScoped</a></li>
-</ul>
-</li>
 <li><a href="#_creating_a_custom_cdi_scope">Creating a Custom CDI 
Scope</a></li>
-<li><a href="#_deactivatable">Deactivatable</a></li>
 </ul>
 </li>
-<li><a href="#_core_utils">Core - Utils</a>
-<ul class="sectlevel3">
+<li><a href="#_deactivatable">Deactivatable</a></li>
+<li><a href="#_utilities">Utilities</a>
+<ul class="sectlevel2">
 <li><a href="#_annotationutils">AnnotationUtils</a></li>
 <li><a href="#_arraysutils">ArraysUtils</a></li>
 <li><a href="#_beanutils">BeanUtils</a></li>
@@ -257,38 +276,59 @@ body {
 </ul>
 </li>
 </ul>
-</li>
-</ul>
             <hr>
-            <div class="sect1">
-<h2 id="_overview">Overview</h2>
+            <div id="preamble">
 <div class="sectionbody">
 <div class="paragraph">
-<p>The Core module provides fundamental and defining DeltaSpike API and 
utility classes. As such, this module must be included in every project that 
uses DeltaSpike.</p>
+<p>The Core module provides fundamental and defining DeltaSpike API and 
utility classes. As such, this module must be included in every project that 
uses DeltaSpike.
+Instructions for configuring your projects to use the DeltaSpike Core module 
are detailed in
+<a href="configure.html">Configure DeltaSpike in Your Projects</a> as part of 
the general instructions for configuring your projects for DeltaSpike.</p>
 </div>
 </div>
 </div>
 <div class="sect1">
-<h2 id="_configure_your_projects">Configure Your Projects</h2>
+<h2 id="_deltaspike_configuration">DeltaSpike Configuration</h2>
 <div class="sectionbody">
 <div class="paragraph">
-<p>Instructions for configuring your Maven-based and Maven-independent 
projects to use the DeltaSpike Core module are detailed in <a 
href="configure.html">Configure DeltaSpike in Your Projects</a> as part of the 
general instructions for configuring your projects for DeltaSpike.</p>
-</div>
+<p>DeltaSpike provides a very flexible application configuration mechanism. 
Its main goal is to make it possible
+to never have to rebuild a project just for the sake of adjusting 
configuration values. It respects the usual
+software development cycle and takes into account project stages, various 
configuration sources and resolution
+mechanisms. Configuration can be overridden just by dropping a JAR into the 
classpath.</p>
 </div>
+<div class="paragraph">
+<p>Detailed documentation is available on a separate page: <a 
href="configuration.html">Configuration</a>.</p>
 </div>
-<div class="sect1">
-<h2 id="_use_the_module_features">Use the Module Features</h2>
-<div class="sectionbody">
 <div class="sect2">
-<h3 id="_core_api">Core - API</h3>
-<div class="sect3">
-<h4 id="_deltaspike_configuration">DeltaSpike Configuration</h4>
+<h3 id="_internal_configuration">Internal configuration</h3>
 <div class="paragraph">
-<p>This is described in a separate page solely targeting <a 
href="configuration.html">configuration</a> mechanics, API and SPI.</p>
+<p>The functionality of DeltaSpike itself and its modules is adjustable using 
the same mechanism. There are two main
+types of internal configuration:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><strong>static configuration:</strong> certain configurable options, like 
the maximum number of windows in the window scope or the
+priority for DeltaSpike&#8217;s global interceptors, are defined using the 
DeltaSpike configuration mechanism and can be
+adjusted by redefining their value in the 
<code>apache-deltaspike.properties</code> file, as described in the
+<a href="configuration.html">documentation</a>. All of these configuration 
options and their corresponding properties can be
+found as members of interfaces extending <code>DeltaSpikeBaseConfig</code>, 
e.g. <code>CoreBaseConfig</code> which configures the core
+ module.</p>
+</li>
+<li>
+<p><strong>dynamic configuration:</strong> certain values can change 
dynamically during runtime and some may differ even among
+contexts. For example, much of the behaviour of the JSF module is configured 
in <code>JsfModuleConfig</code>. To override any of
+ the default configuration options, the <code>JsfModuleConfig</code> bean can 
be overridden using a custom implementation of
+ <code>JsfModuleConfig</code> which would be annotated 
<code>@Alternative</code> or <code>@Specializes</code>. All of the dynamic 
CDI-based
+ configuration beans can be found as implementations of the 
<code>DeltaSpikeConfig</code> interface.</p>
+</li>
+</ul>
 </div>
 </div>
-<div class="sect3">
-<h4 id="_beanprovider">BeanProvider</h4>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_beanprovider">BeanProvider</h2>
+<div class="sectionbody">
 <div class="paragraph">
 <p>The <code>BeanProvider</code> utility class provides static methods for 
manual lookup of bean instances in places where
 standard injection is not available or if the lookup depends on dynamic 
conditions.</p>
@@ -422,8 +462,8 @@ fields.</p>
 <pre class="CodeRay highlight"><code 
data-lang="java">BeanProvider.injectFields(myObject);</code></pre>
 </div>
 </div>
-<div class="sect4">
-<h5 id="_dependentprovider">DependentProvider</h5>
+<div class="sect2">
+<h3 id="_dependentprovider">DependentProvider</h3>
 <div class="paragraph">
 <p><code>DependentProvider</code> must be used instead of 
<code>BeanProvider</code> to obtain instances of dependent-scoped beans to 
allow for
 their proper destruction.</p>
@@ -450,8 +490,10 @@ myBeanProvider.destroy();</code></pre>
 </div>
 </div>
 </div>
-<div class="sect3">
-<h4 id="_beanmanagerprovider">BeanManagerProvider</h4>
+</div>
+<div class="sect1">
+<h2 id="_beanmanagerprovider">BeanManagerProvider</h2>
+<div class="sectionbody">
 <div class="paragraph">
 <p>This mechanism provides access to the <code>BeanManager</code> by 
registering the
 current <code>BeanManager</code> during the startup. This is really handy if 
you
@@ -483,8 +525,10 @@ the lookup strategy you used before, you
 (e.g. in <code>/META-INF/apache-deltaspike.properties</code>).</p>
 </div>
 </div>
-<div class="sect3">
-<h4 id="_annotationinstanceprovider">AnnotationInstanceProvider</h4>
+</div>
+<div class="sect1">
+<h2 id="_annotationinstanceprovider">AnnotationInstanceProvider</h2>
+<div class="sectionbody">
 <div class="paragraph">
 <p>Java EE provides a standard mechanism for obtaining annotation 
instances&#8201;&#8212;&#8201;the <code>AnnotationLiteral</code> class.</p>
 </div>
@@ -534,8 +578,10 @@ priorityAnnotationInstance = AnnotationI
 </ul>
 </div>
 </div>
-<div class="sect3">
-<h4 id="_type_safe_projectstage">Type-safe ProjectStage</h4>
+</div>
+<div class="sect1">
+<h2 id="_type_safe_projectstage">Type-safe ProjectStage</h2>
+<div class="sectionbody">
 <div class="paragraph">
 <p>The DeltaSpike <a href="projectstage.html">ProjectStage</a> mechanism 
allows to use configuration and implementations depending on the server 
environment you currently run on.</p>
 </div>
@@ -543,8 +589,10 @@ priorityAnnotationInstance = AnnotationI
 <p>DeltaSpike provides some pre-defined <a 
href="projectstage.html#_introduction">ProjectStages</a> but it&#8217;s also 
possible to create your own <a 
href="projectstage.html#_custom_project_stages">Custom Project Stage</a>, 
Please, check the <a href="projectstage.html">DeltaSpike ProjectStage</a> page 
for more details.</p>
 </div>
 </div>
-<div class="sect3">
-<h4 id="__exclude">@Exclude</h4>
+</div>
+<div class="sect1">
+<h2 id="__exclude">@Exclude</h2>
+<div class="sectionbody">
 <div class="paragraph">
 <p>With <code>@Exclude</code> it is possible to annotate beans which should be 
ignored
 by CDI even if they are in a CDI enabled archive.</p>
@@ -635,8 +683,8 @@ active if it is not excluded during the
 }</code></pre>
 </div>
 </div>
-<div class="sect4">
-<h5 id="_custom_expressioninterpreter">Custom ExpressionInterpreter</h5>
+<div class="sect2">
+<h3 id="_custom_expressioninterpreter">Custom ExpressionInterpreter</h3>
 <div class="paragraph">
 <p>By default only a very simple and limited syntax is supported. In real
 projects there are usually quite concrete requirements. Since it would
@@ -678,17 +726,21 @@ ExpressionInterpreter is needed:</p>
 </div>
 </div>
 </div>
-<div class="sect3">
-<h4 id="_type_safe_view_config">Type-safe View-Config</h4>
+</div>
+<div class="sect1">
+<h2 id="_type_safe_view_config">Type-safe View-Config</h2>
+<div class="sectionbody">
 <div class="paragraph">
 <p>TODO (Overview)</p>
 </div>
 </div>
-<div class="sect3">
-<h4 id="_literals">Literals</h4>
+</div>
+<div class="sect1">
+<h2 id="_literals">Literals</h2>
+<div class="sectionbody">
 <div class="paragraph">
 <p>Literals allow the instantiation of annotations by extending the
-abstract class 'javax.enterprise.util.AnnotationLiteral'</p>
+abstract class <code>javax.enterprise.util.AnnotationLiteral</code></p>
 </div>
 <div class="listingblock">
 <div class="title">Example</div>
@@ -750,8 +802,10 @@ abstract class 'javax.enterprise.util.An
 </ul>
 </div>
 </div>
-<div class="sect3">
-<h4 id="_messages_and_i18n">Messages and I18n</h4>
+</div>
+<div class="sect1">
+<h2 id="_messages_and_i18n">Messages and i18n</h2>
+<div class="sectionbody">
 <div class="paragraph">
 <p>The following implementation is the minimal effort to use type-safe
 messages (which are hardcoded in this case).</p>
@@ -846,11 +900,10 @@ simple type-safe message.</p>
 }</code></pre>
 </div>
 </div>
-</div>
+<div class="sect2">
+<h3 id="_dynamic_message_builder">Dynamic Message Builder</h3>
 <div class="sect3">
-<h4 id="_dynamic_message_builder">Dynamic Message Builder</h4>
-<div class="sect4">
-<h5 id="_creating_message_instances">Creating Message Instances</h5>
+<h4 id="_creating_message_instances">Creating Message Instances</h4>
 <div class="paragraph">
 <p>The following implementation creates an instance of <code>Message</code> 
for the
 key <code>hello</code>. The final text will be resolved and interpolated 
lazily.
@@ -906,10 +959,10 @@ hello=Hello %s from %s</code></pre>
 </div>
 </div>
 </div>
+<div class="sect3">
+<h4 id="_customizing_the_message_context">Customizing the Message Context</h4>
 <div class="sect4">
-<h5 id="_customizing_the_message_context">Customizing the Message Context</h5>
-<div class="sect5">
-<h6 id="_messageresolver">MessageResolver</h6>
+<h5 id="_messageresolver">MessageResolver</h5>
 <div class="paragraph">
 <p>A message-resolver is responsible for creating the message-text based on
 the message-descriptor (key or inline-text), the current locale (and in
@@ -942,8 +995,8 @@ Message message = <span class="local-var
 contain placeholders which are processed by a 
<code>MessageInterpolator</code></p>
 </div>
 </div>
-<div class="sect5">
-<h6 id="_messageinterpolator">MessageInterpolator</h6>
+<div class="sect4">
+<h5 id="_messageinterpolator">MessageInterpolator</h5>
 <div class="paragraph">
 <p>A <code>MessageInterpolator</code> replaces the placeholders in a 
message-text with
 the arguments of the message.</p>
@@ -967,8 +1020,8 @@ Message message = <span class="local-var
 </div>
 </div>
 </div>
-<div class="sect5">
-<h6 id="_localeresolver">LocaleResolver</h6>
+<div class="sect4">
+<h5 id="_localeresolver">LocaleResolver</h5>
 <div class="paragraph">
 <p>A locale resolver provides the current locale. The locale is, for example, 
used
 to by a <code>MessageResolver</code> to choose the correct language for the
@@ -994,8 +1047,11 @@ Message message = this.messageContext.lo
 </div>
 </div>
 </div>
-<div class="sect3">
-<h4 id="_injecting_resources">Injecting Resources</h4>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_injecting_resources">Injecting Resources</h2>
+<div class="sectionbody">
 <div class="paragraph">
 <p>DeltaSpike has simple APIs for performing basic resource loading and
 property file reading.</p>
@@ -1008,15 +1064,24 @@ property file reading.</p>
 </div>
 </div>
 <div class="paragraph">
-<p>This can be used to read files, from classpath or on your local file
-system, using two default implementations: 
<code>ClasspathResourceProvider</code>
-and <code>FileResourceProvider</code>. They can be extended as well by 
implementing
-the <code>InjectableResourceProvider</code> interface to allow reading from
-alternate sources, if needed (e.g. database LOBs, NoSQL storage areas).</p>
+<p>This can be used to read resources from the classpath or from the file
+system using the two default 
implementations&#8201;&#8212;&#8201;<code>ClasspathResourceProvider</code>
+and <code>FileResourceProvider</code>&#8201;&#8212;&#8201;or from any other 
source using a custom provider.</p>
 </div>
+<div class="sect2">
+<h3 id="_custom_resource_providers">Custom resource providers</h3>
+<div class="paragraph">
+<p>The <code>InjectableResourceProvider</code> interface can be implemented to 
allow reading from
+alternate sources if needed (e.g. database LOBs, NoSQL storage areas). A base 
class called <code>AbstractResourceProvider</code>
+is provided by DeltaSpike and contains most of the methods for potential 
implementations. The only method which must be
+provided is the <code>readStream(InjectableResource)</code> which returns an 
InputStream.</p>
 </div>
-<div class="sect3">
-<h4 id="_exception_control">Exception Control</h4>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_exception_control">Exception Control</h2>
+<div class="sectionbody">
 <div class="paragraph">
 <p>Exception handling in DeltaSpike is based around the CDI eventing model.
 While the implementation of exception handlers may not be the same as a
@@ -1039,8 +1104,8 @@ developer. In most cases, you register a
 annotating a handler method. Alternatively, you can handle an exception
 programmatically, just as you would observe an event in CDI.</p>
 </div>
-<div class="sect4">
-<h5 id="_usage">Usage</h5>
+<div class="sect2">
+<h3 id="_usage">Usage</h3>
 <div class="paragraph">
 <p>The entire exception handling process starts with an event. This helps
 keep your application minimally coupled to DeltaSpike, but also allows
@@ -1082,8 +1147,8 @@ your class for use later within a try/ca
 constructed with the exception to be handled.</p>
 </div>
 </div>
-<div class="sect4">
-<h5 id="_exception_handlers">Exception Handlers</h5>
+<div class="sect2">
+<h3 id="_exception_handlers">Exception Handlers</h3>
 <div class="paragraph">
 <p>As an application developer (i.e., an end user of DeltaSpike&#8217;s 
exception
 handling), you&#8217;ll be focused on writing exception handlers. An exception
@@ -1128,8 +1193,8 @@ methods which have a parameter which is
 <code>ExceptionEvent&lt;T extends Throwable&gt;</code> annotated with the 
<code>@Handles</code>
 annotation.</p>
 </div>
-<div class="sect5">
-<h6 id="__exceptionhandler">@ExceptionHandler</h6>
+<div class="sect3">
+<h4 id="__exceptionhandler">@ExceptionHandler</h4>
 <div class="paragraph">
 <p>The <code>@ExceptionHandler</code> annotation is simply a marker annotation 
that
 instructs the DeltaSpike exception handling CDI extension to scan the
@@ -1150,8 +1215,8 @@ bean for handler methods.</p>
 methods on this bean.</p>
 </div>
 </div>
-<div class="sect5">
-<h6 id="__handles_and_beforehandles">@Handles and @BeforeHandles</h6>
+<div class="sect3">
+<h4 id="__handles_and_beforehandles">@Handles and @BeforeHandles</h4>
 <div class="paragraph">
 <p><code>@Handles</code> is a method parameter annotation that designates a 
method as
 an exception handler. Exception handler methods are registered on beans
@@ -1281,8 +1346,8 @@ will propagate up the stack and all hand
 cease. Any exception that was being handled will be lost.</p>
 </div>
 </div>
-<div class="sect5">
-<h6 id="_ordinal">Ordinal</h6>
+<div class="sect3">
+<h4 id="_ordinal">Ordinal</h4>
 <div class="paragraph">
 <p>When DeltaSpike finds more than one handler for the same exception type,
 it orders the handlers by ordinal. Handlers with higher ordinal are
@@ -1338,8 +1403,8 @@ invoke (until a handler marks exception
 </div>
 </div>
 </div>
-<div class="sect4">
-<h5 id="_exception_chain_processing">Exception Chain Processing</h5>
+<div class="sect2">
+<h3 id="_exception_chain_processing">Exception Chain Processing</h3>
 <div class="paragraph">
 <p>When an exception is thrown, chances are it is nested (wrapped) inside
 other exceptions. (If you&#8217;ve ever examined a server log, you&#8217;ll
@@ -1411,8 +1476,8 @@ thing since what useful information can
 <code>EJBException</code>?</p>
 </div>
 </div>
-<div class="sect4">
-<h5 id="_apis_for_exception_information_and_flow_control">APIs for Exception 
Information and Flow Control</h5>
+<div class="sect2">
+<h3 id="_apis_for_exception_information_and_flow_control">APIs for Exception 
Information and Flow Control</h3>
 <div class="paragraph">
 <p>There are two APIs provided by DeltaSpike that should be familiar to
 application developers:</p>
@@ -1427,8 +1492,8 @@ application developers:</p>
 </li>
 </ul>
 </div>
-<div class="sect5">
-<h6 id="_exceptionevent">ExceptionEvent</h6>
+<div class="sect3">
+<h4 id="_exceptionevent">ExceptionEvent</h4>
 <div class="paragraph">
 <p>In addition to providing information about the exception being handled,
 the <code>ExceptionEvent</code> object contains methods to control the 
exception
@@ -1475,27 +1540,28 @@ the <code>unmute()</code> method on <cod
 </div>
 </div>
 </div>
-<div class="sect3">
-<h4 id="_scopes">Scopes</h4>
+</div>
+<div class="sect1">
+<h2 id="_scopes">Scopes</h2>
+<div class="sectionbody">
 <div class="paragraph">
 <p>DeltaSpike Core provides the API and SPI for several scopes. Currently
 all scopes are only implemented in the <a href="jsf.html#_scopes">JSF 
module</a>.</p>
 </div>
-<div class="sect4">
-<h5 id="__windowscoped">@WindowScoped</h5>
+<div class="sect2">
+<h3 id="__windowscoped">@WindowScoped</h3>
 
 </div>
-<div class="sect4">
-<h5 id="__viewaccessscoped">@ViewAccessScoped</h5>
+<div class="sect2">
+<h3 id="__viewaccessscoped">@ViewAccessScoped</h3>
 
 </div>
-<div class="sect4">
-<h5 id="__groupedconversationscoped">@GroupedConversationScoped</h5>
+<div class="sect2">
+<h3 id="__groupedconversationscoped">@GroupedConversationScoped</h3>
 
 </div>
-</div>
-<div class="sect3">
-<h4 id="_creating_a_custom_cdi_scope">Creating a Custom CDI Scope</h4>
+<div class="sect2">
+<h3 id="_creating_a_custom_cdi_scope">Creating a Custom CDI Scope</h3>
 <div class="paragraph">
 <p>To create a custom CDI scope to match your needs, complete the following 
steps:</p>
 </div>
@@ -1581,8 +1647,11 @@ javax.enterprise.inject.spi.Bean instanc
 </ol>
 </div>
 </div>
-<div class="sect3">
-<h4 id="_deactivatable">Deactivatable</h4>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_deactivatable">Deactivatable</h2>
+<div class="sectionbody">
 <div class="paragraph">
 <p>DeltaSpike allows you to deactivate its own Extensions. You just need to
 implement your <a href="spi.html#_classdeactivator">ClassDeactivator</a>.</p>
@@ -1622,8 +1691,9 @@ other <a href="configuration.html#_confi
 </div>
 </div>
 </div>
-<div class="sect2">
-<h3 id="_core_utils">Core - Utils</h3>
+<div class="sect1">
+<h2 id="_utilities">Utilities</h2>
+<div class="sectionbody">
 <div class="paragraph">
 <p>DeltaSpike provides many utility classes (no constructor / static
 methods) that can be useful for your project.</p>
@@ -1631,8 +1701,8 @@ methods) that can be useful for your pro
 <div class="paragraph">
 <p>Below you can find an information about these classes.</p>
 </div>
-<div class="sect3">
-<h4 id="_annotationutils">AnnotationUtils</h4>
+<div class="sect2">
+<h3 id="_annotationutils">AnnotationUtils</h3>
 <div class="paragraph">
 <p>Utilities for working with annotations on methods and classes.</p>
 </div>
@@ -1653,8 +1723,8 @@ methods) that can be useful for your pro
 </ul>
 </div>
 </div>
-<div class="sect3">
-<h4 id="_arraysutils">ArraysUtils</h4>
+<div class="sect2">
+<h3 id="_arraysutils">ArraysUtils</h3>
 <div class="paragraph">
 <p>A collection of utilities for working with Arrays</p>
 </div>
@@ -1667,8 +1737,8 @@ objects, the last object in the array wi
 </ul>
 </div>
 </div>
-<div class="sect3">
-<h4 id="_beanutils">BeanUtils</h4>
+<div class="sect2">
+<h3 id="_beanutils">BeanUtils</h3>
 <div class="paragraph">
 <p>A set of utility methods for working with beans.</p>
 </div>
@@ -1686,8 +1756,8 @@ objects, the last object in the array wi
 </ul>
 </div>
 </div>
-<div class="sect3">
-<h4 id="_contextutils">ContextUtils</h4>
+<div class="sect2">
+<h3 id="_contextutils">ContextUtils</h3>
 <div class="paragraph">
 <p>A set of utility methods for working with contexts.</p>
 </div>
@@ -1699,8 +1769,8 @@ objects, the last object in the array wi
 </ul>
 </div>
 </div>
-<div class="sect3">
-<h4 id="_classdeactivationutils">ClassDeactivationUtils</h4>
+<div class="sect2">
+<h3 id="_classdeactivationutils">ClassDeactivationUtils</h3>
 <div class="paragraph">
 <p>Helper methods for <code>ClassDeactivator</code></p>
 </div>
@@ -1715,8 +1785,8 @@ objects, the last object in the array wi
 <p>To add a custom <code>ClassDeactivator</code> add 
<code>org.apache.deltaspike.core.spi.activation.ClassDeactivator=my.CustomClassDeactivator</code>
 to <code>META-INF\apache-deltaspike.properties</code>. Or configure it via a 
custom <code>ConfigSource</code>.</p>
 </div>
 </div>
-<div class="sect3">
-<h4 id="_exceptionutils">ExceptionUtils</h4>
+<div class="sect2">
+<h3 id="_exceptionutils">ExceptionUtils</h3>
 <div class="paragraph">
 <p>Helper methods to deal with Exceptions</p>
 </div>
@@ -1731,8 +1801,8 @@ objects, the last object in the array wi
 </ul>
 </div>
 </div>
-<div class="sect3">
-<h4 id="_propertyfileutils">PropertyFileUtils</h4>
+<div class="sect2">
+<h3 id="_propertyfileutils">PropertyFileUtils</h3>
 <div class="paragraph">
 <p>Helper methods for Property files</p>
 </div>
@@ -1750,8 +1820,8 @@ objects, the last object in the array wi
 </ul>
 </div>
 </div>
-<div class="sect3">
-<h4 id="_proxyutils">ProxyUtils</h4>
+<div class="sect2">
+<h3 id="_proxyutils">ProxyUtils</h3>
 <div class="paragraph">
 <p>Helper for CDI proxies</p>
 </div>
@@ -1766,8 +1836,8 @@ objects, the last object in the array wi
 </ul>
 </div>
 </div>
-<div class="sect3">
-<h4 id="_stringutils">StringUtils</h4>
+<div class="sect2">
+<h3 id="_stringutils">StringUtils</h3>
 <div class="paragraph">
 <p>A collection of utilities for working with Strings.</p>
 </div>
@@ -1780,7 +1850,6 @@ objects, the last object in the array wi
 </div>
 </div>
 </div>
-</div>
 </div>
         </div>
 

Modified: deltaspike/site/trunk/content/documentation/jsf.html
URL: 
http://svn.apache.org/viewvc/deltaspike/site/trunk/content/documentation/jsf.html?rev=1677877&r1=1677876&r2=1677877&view=diff
==============================================================================
--- deltaspike/site/trunk/content/documentation/jsf.html (original)
+++ deltaspike/site/trunk/content/documentation/jsf.html Tue May  5 18:32:17 
2015
@@ -654,7 +654,7 @@ from <code>window.name</code></p>
 <p>Any window or browser tab detection will be disabled for the current
 request. Scopes like @WindowScoped, @GroupedConversationScoped or
 @ViewAccessScoped will not work. This is also the default mode if the
-current request doesis not support Javascript or if the user agent is a
+current request does not support Javascript or if the user agent is a
 bot/crawler.</p>
 </div>
 </div>
@@ -835,7 +835,7 @@ as the bean is referenced by a page - th
 next page (if it is used again the bean will be forwarded again). It is
 important that it is based on the view-id of a page (it is not based on
 the request) so, for example, Ajax requests do not trigger a cleanup if the
-request doesis not access all view-access scoped beans of the page. 
That&#8217;s
+request does not access all view-access scoped beans of the page. That&#8217;s
 also the reason for the name @<em>View</em>AccessScoped.</p>
 </div>
 <div class="listingblock">
@@ -1179,7 +1179,7 @@ inheritance.</p>
 <p>In the following example <code>Pages.Admin.Index</code>, 
<code>Pages.Admin.Home</code> and
 <code>Pages.Admin.Statistics.Home</code> inherit the meta-data from 
<code>Pages.Admin</code>
 because they implement the interface whereas
-<code>Pages.Admin.Statistics.Index</code> doesis not. However, 
<code>Pages.Admin.Home</code>
+<code>Pages.Admin.Statistics.Index</code> does not. However, 
<code>Pages.Admin.Home</code>
 overrides <code>View#navigation</code>. During the bootstrapping process the
 meta-data gets merged and at runtime you only see the final result
 (which is cached).</p>

Modified: deltaspike/site/trunk/content/documentation/overview.html
URL: 
http://svn.apache.org/viewvc/deltaspike/site/trunk/content/documentation/overview.html?rev=1677877&r1=1677876&r2=1677877&view=diff
==============================================================================
--- deltaspike/site/trunk/content/documentation/overview.html (original)
+++ deltaspike/site/trunk/content/documentation/overview.html Tue May  5 
18:32:17 2015
@@ -194,141 +194,91 @@ body {
 
         <div id="toc" class="toc">
             <ul class="sectlevel1">
-<li><a href="#_background">Background</a>
-<ul class="sectlevel2">
-<li><a href="#_cdi">CDI</a></li>
-<li><a href="#_portable_cdi_extensions">Portable CDI Extensions</a></li>
-</ul>
-</li>
-<li><a href="#_about_apache_deltaspike">About Apache DeltaSpike</a></li>
-<li><a href="#_features_of_deltaspike">Features of DeltaSpike</a>
+<li><a href="#_features">Features</a>
 <ul class="sectlevel2">
 <li><a href="#_java_ee_7_without_java_ee_7">Java EE 7 without Java EE 
7!</a></li>
 <li><a href="#_jsf_improvements">JSF Improvements</a></li>
 <li><a href="#_productivity_improvements">Productivity Improvements</a></li>
 </ul>
 </li>
-<li><a href="#_next">Next</a></li>
-</ul>
-            <hr>
-            <div class="sect1">
-<h2 id="_background">Background</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_cdi">CDI</h3>
-<div class="paragraph">
-<p>Java Contexts and Dependency Injection for the Java EE platform (<a 
href="https://jcp.org/en/jsr/detail?id=299";>JSR 299</a>), abbreviated to CDI, 
was introduced as part of Java EE6. The core features of CDI are as follows:</p>
-</div>
-<div class="ulist">
-<ul>
-<li>
-<p>improved stateful object lifecycles with an additional context named 
<em>Conversation</em> that encompasses a series of requests within one session 
and lifecycle management by the container according to well-defined contexts</p>
-</li>
-<li>
-<p>dependency injection conducted in a type-safe manner, with type checking 
conducted at compilation time so errors are exposed earlier and debugging is 
easier</p>
-</li>
-<li>
-<p>event notification facility for object interaction</p>
-</li>
-<li>
-<p>a better approach for interceptors with annotations binding interceptors to 
objects and with a new interceptor named <em>decorator</em> that knows about 
individual bean attributes through inheritence and is more appropriate for use 
in solving business problems</p>
-</li>
-<li>
-<p>a Service Provider Interface (SPI) for developing portable extensions to 
the CDI container</p>
-</li>
+<li><a href="#_background">Background</a>
+<ul class="sectlevel2">
+<li><a href="#_cdi">CDI</a></li>
+<li><a href="#_portable_cdi_extensions">Portable CDI Extensions</a></li>
 </ul>
-</div>
-<div class="paragraph">
-<p>CDI is a <a href="https://jcp.org/en/home/index";>Java Community Process 
(JCP)</a> standard. All Java EE6 compliant application servers must provide 
support for CDI. <a href="http://weld.cdi-spec.org/";>JBoss Weld</a> is a 
reference implementation of the CDI specification and other spec-compliant 
implementations exist such as <a href="http://openwebbeans.apache.org/";>Apache 
OpenWebBeans (OWB)</a>. While CDI is a Java EE6 essential, CDI can also be used 
in Java SE environments with the aid of standalone CDI implementations.</p>
-</div>
-</div>
-<div class="sect2">
-<h3 id="_portable_cdi_extensions">Portable CDI Extensions</h3>
-<div class="paragraph">
-<p>The CDI Service Provider Interface (SPI) is exposed to enable extension of 
the CDI feature set by third-parties. Portable CDI extensions extend CDI 
implementations and improve existing Java EE APIs by enabling integration of 
different technologies.</p>
-</div>
-<div class="paragraph">
-<p>As set out in the CDI specification, a portable CDI extenstion may 
integrate with a CDI container as follows:</p>
-</div>
-<div class="ulist">
-<ul>
-<li>
-<p>providing its own beans, interceptors and decorators to the container</p>
-</li>
-<li>
-<p>injecting dependencies into its own objects using the dependency injection 
service</p>
-</li>
-<li>
-<p>providing a context implementation for a custom scope</p>
-</li>
-<li>
-<p>augmenting or overriding the annotation-based metadata with metadata from 
some other source</p>
 </li>
+<li><a href="#_next">Next</a></li>
 </ul>
-</div>
-<div class="paragraph">
-<p>As indicated by the name, <em>portable</em> CDI extensions can be used with 
any spec-compliant CDI implementation.</p>
-</div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_about_apache_deltaspike">About Apache DeltaSpike</h2>
+            <hr>
+            <div id="preamble">
 <div class="sectionbody">
 <div class="paragraph">
 <p>Apache DeltaSpike is a collection of portable CDI extensions. These 
ready-to-use modules enable you to integrate tested API extensions into your 
Java projects.</p>
 </div>
 <div class="paragraph">
-<p>DeltaSpike consists of a core module and a number of optional modules for 
providing additional enterprise functionality to your applications. The modules 
include features for enhanced security with type-safe control over method 
invocations, integration with schedulers, injection of CDI objects into 
validators, and a transactional context and scope. DeltaSpike also provides 
boot and shutdown control over CDI containers in Java SE applications.</p>
+<p>DeltaSpike consists of a core module and a number of <a 
href="modules.html">optional modules</a> for providing additional
+enterprise functionality to your applications. The modules include features 
for enhanced security with type-safe
+control over method invocations, integration with schedulers, injection of CDI 
objects into validators, a
+transactional context and scope, and much more. DeltaSpike also provides boot 
and shutdown control over CDI containers
+in Java SE applications.</p>
 </div>
 <div class="paragraph">
-<p>As a CDI extension, DeltaSpike must be used in conjunction with a CDI 
implementation and supports both JBoss Weld and Apache OpenWebBeans. DeltaSpike 
has been tested on a range of application servers and containers that utilize 
these CDI implementations, such as Apache TomEE, JBoss AS, WildFly, Oracle 
GlassFish, and Jetty.</p>
+<p>As a CDI extension, DeltaSpike must be used in conjunction with a CDI 
implementation and supports both JBoss Weld
+and Apache OpenWebBeans. DeltaSpike is tested on a range of application 
servers and CDI-enabled containers
+including Apache TomEE, JBoss AS, WildFly, Oracle GlassFish, and Jetty.</p>
 </div>
 <div class="paragraph">
-<p>In addition to the portable CDI extension modules, DeltaSpike provides a 
number of examples to show you how to use and get the most from this 
technology.</p>
+<p>DeltaSpike provides a number of <a 
href="http://deltaspike.apache.org/examples.html";>examples</a> to show you how 
to use and get
+the most from this technology.</p>
 </div>
 </div>
 </div>
 <div class="sect1">
-<h2 id="_features_of_deltaspike">Features of DeltaSpike</h2>
+<h2 id="_features">Features</h2>
 <div class="sectionbody">
 <div class="sect2">
 <h3 id="_java_ee_7_without_java_ee_7">Java EE 7 without Java EE 7!</h3>
 <div class="paragraph">
-<p><strong>Transactional support for non-EJB beans:</strong> The Transactional 
Interceptor in DeltaSpike paved the way for @Transactional in Java EE 7.</p>
+<p><strong>Transactional support for non-EJB beans:</strong> The Transactional 
Interceptor in DeltaSpike paved the way for
+<code>@Transactional</code> in Java EE 7.</p>
 </div>
 <div class="paragraph">
-<p><strong>Injectable Servlet objects:</strong> Allows the developer to inject 
CDI beans on Servlets on Java EE 6/CDI 1.0 environments</p>
+<p><strong>Injectable Servlet objects:</strong> Enables CDI injection in 
Servlets in Java EE 6/CDI 1.0 environments</p>
 </div>
 <div class="paragraph">
 <p><strong>Injectable resources:</strong> Configuration, resource 
bundles,&#8230;&#8203; are easy to inject when using CDI and Apache 
DeltaSpike.</p>
 </div>
 <div class="paragraph">
-<p><strong>@Exclude annotation:</strong> it is possible to annotate beans 
which should be ignored by CDI even if they are in a CDI enabled archive on 
Java EE 6/CDI 1.0 environment where you cais not use @Vetoed or a veto based on 
ProjectStages or expressions is needed.</p>
+<p><strong>@Exclude annotation:</strong> Lets you prevent classes from being 
treated as CDI beans even if they are in a CDI-enabled
+archive in a Java EE 6/CDI 1.0 environment where <code>@Vetoed</code> is 
unavailable or when you need to veto based on
+ProjectStages or expressions.</p>
 </div>
 <div class="paragraph">
-<p><strong>Scheduling tasks</strong>: Async processes in a non Java EE 7 
environment.</p>
+<p><strong>Scheduling tasks</strong>: Async processes in a non-EE7 
environment.</p>
 </div>
 <div class="paragraph">
-<p><strong>Bean Validation integration:</strong> Allows to inject CDI beans 
and EJB in to Constraint-Validators.</p>
+<p><strong>Bean Validation integration:</strong> Injection of CDI beans and 
EJBs into Constraint Validators.</p>
 </div>
 <div class="paragraph">
-<p><strong>BeanProvider:</strong> Access the BeanManager and CDI beans even in 
non managed classes like JPA-2.0 EntityListeners or Spring Beans.</p>
+<p><strong>BeanProvider:</strong> Access the BeanManager and CDI beans even in 
non-managed classes like JPA 2.0 EntityListeners or
+Spring Beans.</p>
 </div>
 </div>
 <div class="sect2">
 <h3 id="_jsf_improvements">JSF Improvements</h3>
 <div class="paragraph">
-<p><strong>Multi-window handling:</strong> Allows to manage logical windows 
for batches,&#8230;&#8203; or in case of JSF it offers proper separation of 
browser-tabs.</p>
+<p><strong>Multi-window handling:</strong> Management of logical windows for 
batch jobs, browser tab separation in JSF and more.</p>
 </div>
 <div class="paragraph">
-<p><strong>Type-safe view-config:</strong> It allows to bind meta-data (e.g. 
for security) to views with a type-safe, but flexible approach. It provides a 
more solid navigation in case of JSF and helps a lot in the maintenance 
phase.</p>
+<p><strong>Type-safe view-config:</strong> Lets you bind metadata (e.g. for 
security) to views with a flexible type-safe approach. It
+provides a more solid navigation in case of JSF and helps a lot in the 
maintenance phase.</p>
 </div>
 <div class="paragraph">
-<p><strong>View-Controller:</strong> Based on type-safe view-configs 
view-controller annotations provide a type-safe alternative to 
standard-tags.</p>
+<p><strong>View-Controller:</strong> Based on type-safe view-configs, 
view-controller annotations provide a type-safe alternative to
+standard tags.</p>
 </div>
 <div class="paragraph">
-<p><strong>Injection on Converters and Validators:</strong> Allows to inject 
CDI beans and EJB in to JSF Converters and Validators.</p>
+<p><strong>Injection in Converters and Validators:</strong> Inject CDI beans 
and EJBs into JSF Converters and Validators.</p>
 </div>
 <div class="paragraph">
 <p><strong>JSF event broadcasting to CDI:</strong> Allows CDI to be notified 
about JSF events</p>
@@ -337,10 +287,10 @@ body {
 <div class="sect2">
 <h3 id="_productivity_improvements">Productivity Improvements</h3>
 <div class="paragraph">
-<p><strong>Security based on annotations:</strong> The foundation for building 
a robust, capable and non invasive security solution.</p>
+<p><strong>Security based on annotations:</strong> The foundation for building 
a robust, capable and non-invasive security solution.</p>
 </div>
 <div class="paragraph">
-<p><strong>New CDI scopes:</strong> TransactionScoped, WindowScoped, 
ViewScoped, ViewAccess scope, Grouped conversion scope</p>
+<p><strong>New CDI scopes:</strong> TransactionScoped, WindowScoped, 
ViewScoped, ViewAccess scope, Grouped conversation scope.</p>
 </div>
 <div class="paragraph">
 <p><strong>Container Control and Test Control:</strong> Java SE with CDI, all 
with a unifying API. Start, stop, add classes to a running CDI container.</p>
@@ -349,16 +299,84 @@ body {
 <p><strong>Data Module:</strong> An out of the box entity framework solution 
complete with support for container or application managed persistence 
contexts, as well as JDBC.</p>
 </div>
 <div class="paragraph">
-<p><strong>Decoupled Exception handling:</strong> Allows to do exception 
handling in one location similar to CDI Observers.</p>
+<p><strong>Decoupled Exception handling:</strong> Event-based exception 
handling framework, similar to the CDI event observer mechanism.</p>
 </div>
 <div class="paragraph">
-<p><strong>JMX integration:</strong> Any CDI bean can be exposed via JMX 
easily with one annotation.</p>
+<p><strong>JMX integration:</strong> Any CDI bean can be exposed via JMX 
easily with a single annotation.</p>
 </div>
 <div class="paragraph">
 <p><strong>Type-safe i18n messages:</strong> Localized messages are easy to 
use with an interface and a resource bundle, no more boilerplate and your 
messages now have context within the code.</p>
 </div>
 <div class="paragraph">
-<p><strong>Type-safe ProjectStages:</strong> Compared to ProjectStages in JSF, 
DeltaSpike provides a type-safe, but still extensible approach which can be 
used in CDI based applications.</p>
+<p><strong>Type-safe ProjectStages:</strong> Compared to ProjectStages in JSF, 
DeltaSpike provides a type-safe, but still extensible
+approach which can be used in CDI-based applications.</p>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_background">Background</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_cdi">CDI</h3>
+<div class="paragraph">
+<p>Java Contexts and Dependency Injection for the Java EE platform (<a 
href="https://jcp.org/en/jsr/detail?id=299";>JSR 299</a>),
+ abbreviated <em>CDI</em> was introduced as part of Java EE 6. The core 
features of CDI are as follows:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>improved stateful object lifecycles with an additional context named 
<em>Conversation</em> that encompasses a series of requests within one session 
and lifecycle management by the container according to well-defined contexts</p>
+</li>
+<li>
+<p>dependency injection conducted in a type-safe manner, with type checking 
conducted at compilation time so errors are exposed earlier and debugging is 
easier</p>
+</li>
+<li>
+<p>event notification facility for object interaction</p>
+</li>
+<li>
+<p>a better approach for interceptors with annotations binding interceptors to 
objects and with a new interceptor
+named <em>decorator</em> that knows about individual bean attributes through 
inheritance and is more appropriate for use in
+ solving business problems</p>
+</li>
+<li>
+<p>a Service Provider Interface (SPI) for developing portable extensions to 
the CDI container</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>CDI is a <a href="https://jcp.org/en/home/index";>Java Community Process 
(JCP)</a> standard. All Java EE 6 compliant
+application servers must provide support for CDI. <a 
href="http://weld.cdi-spec.org/";>JBoss Weld</a> is a reference
+implementation of the CDI specification and other spec-compliant 
implementations exist such as <a href="http://openwebbeans.apache.org/";>Apache 
OpenWebBeans (OWB)</a>. While CDI is a Java EE 6 essential, CDI can also be 
used in Java SE environments with the aid of standalone CDI implementations.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_portable_cdi_extensions">Portable CDI Extensions</h3>
+<div class="paragraph">
+<p>The CDI Service Provider Interface (SPI) is exposed to enable extension of 
the CDI feature set by third parties.
+Portable CDI extensions extend CDI implementations and improve existing Java 
EE APIs by enabling integration of different technologies.</p>
+</div>
+<div class="paragraph">
+<p>As set out in the CDI specification, a portable CDI extension may integrate 
with a CDI container as follows:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>providing its own beans, interceptors and decorators to the container</p>
+</li>
+<li>
+<p>injecting dependencies into its own objects using the dependency injection 
service</p>
+</li>
+<li>
+<p>providing a context implementation for a custom scope</p>
+</li>
+<li>
+<p>augmenting or overriding the annotation-based metadata with metadata from 
some other source</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>As indicated by the name, <em>portable</em> CDI extensions can be used with 
any spec-compliant CDI implementation.</p>
 </div>
 </div>
 </div>

Modified: deltaspike/site/trunk/content/documentation/projectstage.html
URL: 
http://svn.apache.org/viewvc/deltaspike/site/trunk/content/documentation/projectstage.html?rev=1677877&r1=1677876&r2=1677877&view=diff
==============================================================================
--- deltaspike/site/trunk/content/documentation/projectstage.html (original)
+++ deltaspike/site/trunk/content/documentation/projectstage.html Tue May  5 
18:32:17 2015
@@ -342,10 +342,10 @@ determine the string is the ConfigResolv
 <p><code>ProjectStageProducer</code> provides the producer method which allows 
to
 inject the current ProjectStage. However, in some cases it is needed to
 use ProjectStages also during the bootstrapping process of the CDI
-container and you cais not use injection. In such cases you can use
+container and you can not use injection. In such cases you can use
 <code>ProjectStageProducer.getInstance().getProjectStage()</code> to resolve 
the
 current ProjectStage. This helper also contains helpers for unit-tests
-- e.g. <code>#setProjectStage</code>. However, those methods shouldis not be 
needed
+- e.g. <code>#setProjectStage</code>. However, those methods should not be 
needed
 for users (we just need them for testing different ProjectStage
 scenarios).</p>
 </div>

Modified: deltaspike/site/trunk/content/documentation/scheduler.html
URL: 
http://svn.apache.org/viewvc/deltaspike/site/trunk/content/documentation/scheduler.html?rev=1677877&r1=1677876&r2=1677877&view=diff
==============================================================================
--- deltaspike/site/trunk/content/documentation/scheduler.html (original)
+++ deltaspike/site/trunk/content/documentation/scheduler.html Tue May  5 
18:32:17 2015
@@ -414,7 +414,7 @@ start a job once (without registering it
 <h3 id="_custom_scheduler">Custom Scheduler</h3>
 <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="http://org.apache.deltaspike.test.scheduler.custom"; 
class="bare">http://org.apache.deltaspike.test.scheduler.custom</a>.</p>
+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>

Modified: deltaspike/site/trunk/content/documentation/security.html
URL: 
http://svn.apache.org/viewvc/deltaspike/site/trunk/content/documentation/security.html?rev=1677877&r1=1677876&r2=1677877&view=diff
==============================================================================
--- deltaspike/site/trunk/content/documentation/security.html (original)
+++ deltaspike/site/trunk/content/documentation/security.html Tue May  5 
18:32:17 2015
@@ -483,7 +483,7 @@ as part of our security authorizer!</p>
 <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
-doesis not provide a full blown security concept like the rest of the
+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

Modified: deltaspike/site/trunk/content/documentation/servlet.html
URL: 
http://svn.apache.org/viewvc/deltaspike/site/trunk/content/documentation/servlet.html?rev=1677877&r1=1677876&r2=1677877&view=diff
==============================================================================
--- deltaspike/site/trunk/content/documentation/servlet.html (original)
+++ deltaspike/site/trunk/content/documentation/servlet.html Tue May  5 
18:32:17 2015
@@ -277,7 +277,7 @@ register the listeners and filters in yo
 <div class="ulist">
 <ul>
 <li>
-<p>Your container doesis not support Servlet 3.0 or newer.</p>
+<p>Your container does not support Servlet 3.0 or newer.</p>
 </li>
 <li>
 <p>You have set <code>metadata-complete=true</code> in your 
<code>web.xml</code>.</p>

Modified: deltaspike/site/trunk/content/documentation/spi.html
URL: 
http://svn.apache.org/viewvc/deltaspike/site/trunk/content/documentation/spi.html?rev=1677877&r1=1677876&r2=1677877&view=diff
==============================================================================
--- deltaspike/site/trunk/content/documentation/spi.html (original)
+++ deltaspike/site/trunk/content/documentation/spi.html Tue May  5 18:32:17 
2015
@@ -220,13 +220,17 @@ body {
 <h2 id="_deactivatable">Deactivatable</h2>
 <div class="sectionbody">
 <div class="paragraph">
-<p>This mechanism is only used for artifacts <strong>like</strong> 
implementations of (<code>javax.enterprise.inject.spi.Extension</code>) which 
<strong>cais not</strong> be deactivated with standard CDI mechanisms.</p>
+<p>This mechanism is only used for artifacts <strong>like</strong> 
implementations of (<code>javax.enterprise.inject.spi.Extension</code>) which
+<strong>can not</strong> be deactivated with standard CDI mechanisms.</p>
 </div>
 <div class="paragraph">
 <p>This interface is just a marker interface which is implemented by all 
pre-configured DeltaSpike artifacts which can be deactivated manually (e.g. to 
improve the performance if a part isis not needed, to provide a custom 
implementation if the default implementation isis not pluggable by default or 
to bypass an implementation which causes an issue (in this case please also 
<strong>contact us</strong> and we will fix it)).</p>
 </div>
 <div class="paragraph">
-<p>To deactivate a class it is required to implement 
<code>ClassDeactivator</code>. Returning 'false' or 'true' allows to 
de-/activate the class in question. Retuning null means that the current 
class-deactivator doesis not have information about the class in question and 
cais not provide a result. Since <code>ClassDeactivator</code> implementations 
are configured with the low-level configuration of DeltaSpike, the 
class-deactivator with the highest ordinal has the final decision. DeltaSpike 
itself doesis not deactivate an implementation, however, an add-on or a 
third-party portable CDI extension based on DeltaSpike (Core+) can use the 
concept to deactivate a default implementation of DeltaSpike in favour of its 
own implementation.</p>
+<p>To deactivate a class it is required to implement 
<code>ClassDeactivator</code>. Returning 'false' or 'true' allows to
+de-/activate the class in question. Retuning null means that the current 
class-deactivator does not have
+information about the class in question and can not provide a result. Since 
<code>ClassDeactivator</code> implementations are
+configured with the low-level configuration of DeltaSpike, the 
class-deactivator with the highest ordinal has the final decision. DeltaSpike 
itself does not deactivate an implementation, however, an add-on or a 
third-party portable CDI extension based on DeltaSpike (Core+) can use the 
concept to deactivate a default implementation of DeltaSpike in favour of its 
own implementation.</p>
 </div>
 <div class="admonitionblock important">
 <table>
@@ -295,7 +299,8 @@ as soon as everything is initialized the
 <h2 id="_global_alternative">Global Alternative</h2>
 <div class="sectionbody">
 <div class="paragraph">
-<p>There are several application servers (using CDI 1.0) which cais not handle 
alternative CDI beans correctly (e.g. due to a too strict interpretation or a 
broken implementation). Therefore, DeltaSpike allows to use the standard 
<code>@Alternative</code> annotation and an additional configuration entry for 
DeltaSpike which allows to use the alternative implementation as a global 
alternative.</p>
+<p>There are several application servers (using CDI 1.0) which can not handle 
alternative CDI beans correctly (e.g. due to
+a too strict interpretation or a broken implementation). Therefore, DeltaSpike 
allows to use the standard <code>@Alternative</code> annotation and an 
additional configuration entry for DeltaSpike which allows to use the 
alternative implementation as a global alternative.</p>
 </div>
 <div class="listingblock">
 <div class="title">Standard CDI alternative implementation (without the 
required XML config)</div>

Modified: deltaspike/site/trunk/content/documentation/test-control.html
URL: 
http://svn.apache.org/viewvc/deltaspike/site/trunk/content/documentation/test-control.html?rev=1677877&r1=1677876&r2=1677877&view=diff
==============================================================================
--- deltaspike/site/trunk/content/documentation/test-control.html (original)
+++ deltaspike/site/trunk/content/documentation/test-control.html Tue May  5 
18:32:17 2015
@@ -524,7 +524,7 @@ via a mocking framework and add them, fo
 </div>
 <div class="paragraph">
 <p><strong>Attention:</strong> Mocking CDI beans is not supported for every 
feature of CDI and/or
-every implementation version. For example, we cais not mock intercepted CDI 
beans and
+every implementation version. For example, we can not mock intercepted CDI 
beans and
 with some implementations mocking specialized beans fails.
 Usually all features are active by default, however,
 due to those reasons we deactivated this feature by default.


Reply via email to