http://git-wip-us.apache.org/repos/asf/incubator-tamaya-site/blob/cb3c154a/documentation/extensions/mod_filter.html
----------------------------------------------------------------------
diff --git a/documentation/extensions/mod_filter.html 
b/documentation/extensions/mod_filter.html
new file mode 100644
index 0000000..2d153c8
--- /dev/null
+++ b/documentation/extensions/mod_filter.html
@@ -0,0 +1,301 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";>
+
+<html xmlns="http://www.w3.org/1999/xhtml";>
+       <head>
+           <meta charset="utf-8"/>
+           <title>Apache Tamaya&amp;#8201;&amp;#8212;&amp;#8201;Extension: 
User Filtering</title>
+           <meta name="viewport" content="width=device-width, 
initial-scale=1.0"/>
+           <meta name="description" content=""/>
+           <meta name="author" content=""/>
+           <meta name="keywords" content=""/>
+           <meta name="generator" content="'JBake '+'${version}"/>
+
+           <!-- Le styles -->
+           <link href="../../css/bootstrap.min.css" rel="stylesheet"/>
+           <link href="../../css/asciidoctor.css" rel="stylesheet"/>
+           <link href="../../css/base.css" rel="stylesheet"/>
+           <link href="../../css/prettify.css" rel="stylesheet"/>
+
+           <!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
+           <!--[if lt IE 9]>
+             <script src="../../js/html5shiv.min.js"></script>
+           <![endif]-->
+
+           <!-- Fav and touch icons from ASF -->
+                       <link rel="shortcut icon" href="../../favicon.ico"/>
+                       <link rel="apple-touch-icon" sizes="57x57" 
href="../../favicons/apple-touch-icon-57x57.png"/>
+                 <link rel="apple-touch-icon" sizes="60x60" 
href="../../favicons/apple-touch-icon-60x60.png"/>
+                 <link rel="apple-touch-icon" sizes="72x72" 
href="../../favicons/apple-touch-icon-72x72.png"/>
+                 <link rel="apple-touch-icon" sizes="76x76" 
href="../../favicons/apple-touch-icon-76x76.png"/>
+                 <link rel="apple-touch-icon" sizes="114x114" 
href="../../favicons/apple-touch-icon-114x114.png"/>
+                 <link rel="apple-touch-icon" sizes="120x120" 
href="../../favicons/apple-touch-icon-120x120.png"/>
+                 <link rel="apple-touch-icon" sizes="144x144" 
href="../../favicons/apple-touch-icon-144x144.png"/>
+                 <link rel="apple-touch-icon" sizes="152x152" 
href="../../favicons/apple-touch-icon-152x152.png"/>
+                 <link rel="apple-touch-icon" sizes="180x180" 
href="../../favicons/apple-touch-icon-180x180.png"/>
+                 <link rel="icon" type="image/png" 
href="../../favicons/favicon-32x32.png" sizes="32x32"/>
+                 <link rel="icon" type="image/png" 
href="../../favicons/favicon-194x194.png" sizes="194x194"/>
+                 <link rel="icon" type="image/png" 
href="../../favicons/favicon-96x96.png" sizes="96x96"/>
+                 <link rel="icon" type="image/png" 
href="../../favicons/android-chrome-192x192.png" sizes="192x192"/>
+                 <link rel="icon" type="image/png" 
href="../../favicons/favicon-16x16.png" sizes="16x16"/>
+                 <link rel="manifest" href="../../favicons/manifest.json"/>
+                 <link rel="shortcut icon" href="../../favicons/favicon.ico"/>
+                 <meta name="msapplication-TileColor" content="#603cba"/>
+                 <meta name="msapplication-TileImage" 
content="../../favicons/mstile-144x144.png"/>
+                 <meta name="msapplication-config" 
content="../../favicons/browserconfig.xml"/>
+                 <meta name="theme-color" content="#303284"/>
+       </head>
+       <body onload="prettyPrint()">
+       <div id="wrap">
+               <div>
+
+         <!-- Fixed navbar -->
+      <div class="navbar navbar-default navbar-fixed-top" role="navigation">
+      <div class="container">
+        <div class="navbar-header">
+          <button type="button" class="navbar-toggle" data-toggle="collapse" 
data-target=".navbar-collapse">
+            <span class="sr-only">Toggle navigation</span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+          </button>
+          <a class="navbar-brand" href="../../">Apache Tamaya (incubating)</a>
+        </div>
+        <div class="navbar-collapse collapse">
+          <ul class="nav navbar-nav">
+                                               <li><a 
href="../../index.html">Home</a></li>
+                                               <li><a 
href="../../about.html">About</a></li>
+                                               <li class="dropdown">
+              <a href="#" class="dropdown-toggle" 
data-toggle="dropdown">Documentation <b class="caret"></b></a>
+              <ul class="dropdown-menu">
+                                                               <li><a 
href="../../documentation/usecases.html">Use Cases and Requirements</a></li>
+                                                               <li><a 
href="../../documentation/quickstart.html">Quickstart</a></li>
+                                                               <li><a 
href="../../documentation/api.html">API</a></li>
+                                                               <li><a 
href="../../documentation/core.html">Core</a></li>
+                                                               <li><a 
href="../../documentation/extensions.html">Extension Guide</a></li>
+                                                               <li 
class="divider"></li>
+                                                               <li><a 
href="../../apidocs/index.html">Javadoc ${tamaya_version} (external)</a></li>
+              </ul>
+            </li>
+                                               <li class="dropdown">
+              <a href="#" class="dropdown-toggle" 
data-toggle="dropdown">Development <b class="caret"></b></a>
+              <ul class="dropdown-menu">
+                                                               <li><a 
href="../../development/source.html">Sources</a></li>
+                                                               <li><a 
href="../../development/community.html">Community</a></li>
+                                                               <li><a 
href="../../devguide.html">Development Guide</a></li>
+                                                               <li><a 
href="../../release-guide.html">Release Guide</a></li>
+              </ul>
+            </li>
+                                               <li class="dropdown">
+              <a href="#" class="dropdown-toggle" 
data-toggle="dropdown">Releases <b class="caret"></b></a>
+              <ul class="dropdown-menu">
+                                                               <li><a 
href="../../download.html">Download</a></li>
+                                                               <li><a 
href="../../history.html">Release History</a></li>
+              </ul>
+            </li>
+<!-- Example:
+                                               <li class="dropdown">
+              <a href="#" class="dropdown-toggle" 
data-toggle="dropdown">Dropdown <b class="caret"></b></a>
+              <ul class="dropdown-menu">
+                <li><a href="#">Action</a></li>
+                <li><a href="#">Another action</a></li>
+                <li><a href="#">Something else here</a></li>
+                <li class="divider"></li>
+                <li class="dropdown-header">Nav header</li>
+                <li><a href="#">Separated link</a></li>
+                <li><a href="#">One more separated link</a></li>
+              </ul>
+            </li>
+-->
+                                               <li><a 
href="../../sitemap.xml">Sitemap</a></li>
+                                               <li><a 
href="../../feed.xml">Subscribe</a></li>
+          </ul>
+        </div><!--/.nav-collapse -->
+      </div>
+    </div>
+
+       </div>
+               <div class="container">
+
+                       <div class="page-header">
+                               <h1>Apache 
Tamaya&amp;#8201;&amp;#8212;&amp;#8201;Extension: User Filtering</h1>
+                       </div>
+
+                       <p><em>2016-12-19</em></p>
+
+                       <p><div id="preamble">
+<div class="sectionbody">
+<!-- toc disabled -->
+</div>
+</div>
+<div class="sect1">
+<h2 id="Optional">User Filtering (Extension Module)</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_overview">Overview</h3>
+<div class="paragraph">
+<p>The Tamaya filter module provides a simple singleton accessor that allows 
to explicitly add PropertyFilter instances
+active on the current thread only. This can be very useful in many scenarios. 
Additionally this module adds
+standard filters that hide metadata entries when the full configuration map is 
accessed. When keys are accessed
+explicitily no filtering is applied and everything is visible.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_compatibility">Compatibility</h3>
+<div class="paragraph">
+<p>The module is based on Java 7, so it will not run on Java 7 and beyond.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_installation">Installation</h3>
+<div class="paragraph">
+<p>To benefit from configuration builder support you only must add the 
corresponding dependency to your module:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-xml" 
data-lang="xml">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.tamaya.ext&lt;/groupId&gt;
+  &lt;artifactId&gt;tamaya-filter&lt;/artifactId&gt;
+  &lt;version&gt;{tamaya_version}&lt;/version&gt;
+&lt;/dependency&gt;</code></pre>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_the_extensions_provided">The Extensions Provided</h3>
+<div class="paragraph">
+<p>Tamaya Filter comes basically with 3 artifacts:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>The org.apache.tamaya.filter.ConfigurationFilter provides several static 
methods to register PropertyFilter
+instances on the current thread.</p>
+</li>
+<li>
+<p>The org.apache.tamaya.filter.DefaultMetdataFilter is a PropertyFilter with 
hides all entries starting with
+an underscore ('_'), when a full property map is accessed.</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_the_configurationfilter">The ConfigurationFilter</h3>
+<div class="paragraph">
+<p>The accessor mentioned implements the API for for adding PropertyFilters to 
the current thread (as thread local):</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-java" 
data-lang="java">public final class ConfigurationFilter implements 
PropertyFilter{
+
+    ...
+
+    /**
+     * Seactivates metadata filtering also on global map access for this 
thread.
+     * @see #clearFilters()
+     * @param active true,to enable metadata filtering (default).
+     */
+    public static void setFilterMetadata(boolean active);
+
+    /**
+     * Access the filtering configuration that is used for filtering single 
property values accessed.
+     * @return the filtering config, never null.
+     */
+    public static FilterContext getSingleFilterContext();
+
+    /**
+     * Access the filtering configuration that is used for filtering 
configuration properties accessed as full
+     * map.
+     * @return the filtering config, never null.
+     */
+    public static FilterContext getMapFilters();
+
+    /**
+     * Removes all programmable filters active on the current thread.
+     */
+    public static void clearFilters();
+
+    ...
+
+}</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>For using regular expression when filtering configuration keys a 
corresponding implementation of a PropertyFilter
+is part of this module, So you can add a customized filter as follows:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-java" 
data-lang="java">try {
+    ConfigurationFilter.getMapFilters().addFilter(new myFilter());
+
+    // do your code with filtering active
+}
+finally {
+    // cleanup
+    ConfigurationFilter.clearFilters();
+}</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>The FilterContext is a simple structure just providing some handy accessors 
to the dynamic thread-local
+managed filters:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-java" 
data-lang="java">public final class FilterContext implements PropertyFilter {
+
+    public void addIncludes(PropertyFilter filter);
+    public void addExcludes(int pos, PropertyFilter filter);
+    public PropertyFilter removeFilter(int pos);
+    public void clearFilters();
+    public void setIncludes(PropertyFilter... filters);
+    public void setExcludes(Collection&lt;PropertyFilter&gt; filters);
+    public List&lt;PropertyFilter&gt; getFilters();
+
+}</code></pre>
+</div>
+</div>
+</div>
+</div>
+</div></p>
+
+                       <hr />
+               </div>
+       </div>
+       <div>
+                       <div id="push"></div>
+
+                   <div id="footer">
+                     <div class="container">
+                       <p class="muted credit">&copy; 2014-2016 Apache 
Software Foundation | Mixed with <a href="http://getbootstrap.com/";>Bootstrap 
v3.1.1</a>
+                                                       | Baked with <a 
href="http://jbake.org";>JBake <span>v2.5.0</span></a>
+                                                       at 
<span>2016-12-19</span>
+                                               </p>
+                                               <p>
+                                                               
<b>Disclaimer</b>
+                    Apache Tamaya (incubating) is an effort undergoing
+                    incubation at
+                    The Apache Software Foundation (ASF), sponsored by
+                    the name of Apache Incubator. Incubation is required of
+                    all newly accepted projects until a further review 
indicates
+                    that the infrastructure, communications, and decision 
making
+                    process have stabilized in a manner consistent with other
+                    successful ASF projects. While incubation status is not
+                    necessarily a reflection of the completeness or stability 
of
+                    the code, it does indicate that the project has yet to
+                    be fully endorsed by the ASF.<br />
+                    <a href="http://incubator.apache.org/guides/website.html"; 
style="border:0px;" target="_target"><img class="incubator-logo" 
src="../../logos/egg-logo2.png"/></a>
+                                                       </p>
+                     </div>
+                   </div>
+
+                   <!-- Le javascript
+                   ================================================== -->
+                   <!-- Placed at the end of the document so the pages load 
faster -->
+                   <script src="../../js/jquery-1.11.1.min.js"></script>
+                   <script src="../../js/bootstrap.min.js"></script>
+                   <script src="../../js/prettify.js"></script>
+
+       </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-site/blob/cb3c154a/documentation/extensions/mod_formats.html
----------------------------------------------------------------------
diff --git a/documentation/extensions/mod_formats.html 
b/documentation/extensions/mod_formats.html
new file mode 100644
index 0000000..513c1d0
--- /dev/null
+++ b/documentation/extensions/mod_formats.html
@@ -0,0 +1,462 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";>
+
+<html xmlns="http://www.w3.org/1999/xhtml";>
+       <head>
+           <meta charset="utf-8"/>
+           <title>Apache Tamaya&amp;#8201;&amp;#8212;&amp;#8201;Extension: 
Formats</title>
+           <meta name="viewport" content="width=device-width, 
initial-scale=1.0"/>
+           <meta name="description" content=""/>
+           <meta name="author" content=""/>
+           <meta name="keywords" content=""/>
+           <meta name="generator" content="'JBake '+'${version}"/>
+
+           <!-- Le styles -->
+           <link href="../../css/bootstrap.min.css" rel="stylesheet"/>
+           <link href="../../css/asciidoctor.css" rel="stylesheet"/>
+           <link href="../../css/base.css" rel="stylesheet"/>
+           <link href="../../css/prettify.css" rel="stylesheet"/>
+
+           <!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
+           <!--[if lt IE 9]>
+             <script src="../../js/html5shiv.min.js"></script>
+           <![endif]-->
+
+           <!-- Fav and touch icons from ASF -->
+                       <link rel="shortcut icon" href="../../favicon.ico"/>
+                       <link rel="apple-touch-icon" sizes="57x57" 
href="../../favicons/apple-touch-icon-57x57.png"/>
+                 <link rel="apple-touch-icon" sizes="60x60" 
href="../../favicons/apple-touch-icon-60x60.png"/>
+                 <link rel="apple-touch-icon" sizes="72x72" 
href="../../favicons/apple-touch-icon-72x72.png"/>
+                 <link rel="apple-touch-icon" sizes="76x76" 
href="../../favicons/apple-touch-icon-76x76.png"/>
+                 <link rel="apple-touch-icon" sizes="114x114" 
href="../../favicons/apple-touch-icon-114x114.png"/>
+                 <link rel="apple-touch-icon" sizes="120x120" 
href="../../favicons/apple-touch-icon-120x120.png"/>
+                 <link rel="apple-touch-icon" sizes="144x144" 
href="../../favicons/apple-touch-icon-144x144.png"/>
+                 <link rel="apple-touch-icon" sizes="152x152" 
href="../../favicons/apple-touch-icon-152x152.png"/>
+                 <link rel="apple-touch-icon" sizes="180x180" 
href="../../favicons/apple-touch-icon-180x180.png"/>
+                 <link rel="icon" type="image/png" 
href="../../favicons/favicon-32x32.png" sizes="32x32"/>
+                 <link rel="icon" type="image/png" 
href="../../favicons/favicon-194x194.png" sizes="194x194"/>
+                 <link rel="icon" type="image/png" 
href="../../favicons/favicon-96x96.png" sizes="96x96"/>
+                 <link rel="icon" type="image/png" 
href="../../favicons/android-chrome-192x192.png" sizes="192x192"/>
+                 <link rel="icon" type="image/png" 
href="../../favicons/favicon-16x16.png" sizes="16x16"/>
+                 <link rel="manifest" href="../../favicons/manifest.json"/>
+                 <link rel="shortcut icon" href="../../favicons/favicon.ico"/>
+                 <meta name="msapplication-TileColor" content="#603cba"/>
+                 <meta name="msapplication-TileImage" 
content="../../favicons/mstile-144x144.png"/>
+                 <meta name="msapplication-config" 
content="../../favicons/browserconfig.xml"/>
+                 <meta name="theme-color" content="#303284"/>
+       </head>
+       <body onload="prettyPrint()">
+       <div id="wrap">
+               <div>
+
+         <!-- Fixed navbar -->
+      <div class="navbar navbar-default navbar-fixed-top" role="navigation">
+      <div class="container">
+        <div class="navbar-header">
+          <button type="button" class="navbar-toggle" data-toggle="collapse" 
data-target=".navbar-collapse">
+            <span class="sr-only">Toggle navigation</span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+          </button>
+          <a class="navbar-brand" href="../../">Apache Tamaya (incubating)</a>
+        </div>
+        <div class="navbar-collapse collapse">
+          <ul class="nav navbar-nav">
+                                               <li><a 
href="../../index.html">Home</a></li>
+                                               <li><a 
href="../../about.html">About</a></li>
+                                               <li class="dropdown">
+              <a href="#" class="dropdown-toggle" 
data-toggle="dropdown">Documentation <b class="caret"></b></a>
+              <ul class="dropdown-menu">
+                                                               <li><a 
href="../../documentation/usecases.html">Use Cases and Requirements</a></li>
+                                                               <li><a 
href="../../documentation/quickstart.html">Quickstart</a></li>
+                                                               <li><a 
href="../../documentation/api.html">API</a></li>
+                                                               <li><a 
href="../../documentation/core.html">Core</a></li>
+                                                               <li><a 
href="../../documentation/extensions.html">Extension Guide</a></li>
+                                                               <li 
class="divider"></li>
+                                                               <li><a 
href="../../apidocs/index.html">Javadoc ${tamaya_version} (external)</a></li>
+              </ul>
+            </li>
+                                               <li class="dropdown">
+              <a href="#" class="dropdown-toggle" 
data-toggle="dropdown">Development <b class="caret"></b></a>
+              <ul class="dropdown-menu">
+                                                               <li><a 
href="../../development/source.html">Sources</a></li>
+                                                               <li><a 
href="../../development/community.html">Community</a></li>
+                                                               <li><a 
href="../../devguide.html">Development Guide</a></li>
+                                                               <li><a 
href="../../release-guide.html">Release Guide</a></li>
+              </ul>
+            </li>
+                                               <li class="dropdown">
+              <a href="#" class="dropdown-toggle" 
data-toggle="dropdown">Releases <b class="caret"></b></a>
+              <ul class="dropdown-menu">
+                                                               <li><a 
href="../../download.html">Download</a></li>
+                                                               <li><a 
href="../../history.html">Release History</a></li>
+              </ul>
+            </li>
+<!-- Example:
+                                               <li class="dropdown">
+              <a href="#" class="dropdown-toggle" 
data-toggle="dropdown">Dropdown <b class="caret"></b></a>
+              <ul class="dropdown-menu">
+                <li><a href="#">Action</a></li>
+                <li><a href="#">Another action</a></li>
+                <li><a href="#">Something else here</a></li>
+                <li class="divider"></li>
+                <li class="dropdown-header">Nav header</li>
+                <li><a href="#">Separated link</a></li>
+                <li><a href="#">One more separated link</a></li>
+              </ul>
+            </li>
+-->
+                                               <li><a 
href="../../sitemap.xml">Sitemap</a></li>
+                                               <li><a 
href="../../feed.xml">Subscribe</a></li>
+          </ul>
+        </div><!--/.nav-collapse -->
+      </div>
+    </div>
+
+       </div>
+               <div class="container">
+
+                       <div class="page-header">
+                               <h1>Apache 
Tamaya&amp;#8201;&amp;#8212;&amp;#8201;Extension: Formats</h1>
+                       </div>
+
+                       <p><em>2016-12-19</em></p>
+
+                       <p><div id="preamble">
+<div class="sectionbody">
+<!-- toc disabled -->
+</div>
+</div>
+<div class="sect1">
+<h2 id="Core">Tamaya Formats (Extension Module)</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_overview">Overview</h3>
+<div class="paragraph">
+<p>Tamaya Formats is an extension module. Refer to the <a 
href="modules.html">extensions documentation</a> for further details.</p>
+</div>
+<div class="paragraph">
+<p>Tamaya Formats provides an abstraction for configuration formats provding 
the following benefits:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Parsing of resources in can be implemented separately from interpreting the 
different aspects/parts parsed. As an
+example a file format can define different sections. Depending on the company 
specific semantics of the sections
+a different set of PropertySource instances must be created.</p>
+</li>
+<li>
+<p>Similarly the configuration abstraction can also be used as an interface 
for integrating Tamaya with alternate
+frameworks that provide logic for reading configuration files, such as Apache 
commons.configuration.</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_compatibility">Compatibility</h3>
+<div class="paragraph">
+<p>The module is based on Java 7, so it can be used with Java 7 and beyond.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_installation">Installation</h3>
+<div class="paragraph">
+<p>To benefit from dynamic value resolution you only must add the 
corresponding dependency to your module:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-xml" 
data-lang="xml">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.tamaya.ext&lt;/groupId&gt;
+  &lt;artifactId&gt;tamaya-formats&lt;/artifactId&gt;
+  &lt;version&gt;{tamaya_version}&lt;/version&gt;
+&lt;/dependency&gt;</code></pre>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_the_idea">The Idea</h3>
+<div class="paragraph">
+<p>Formats should be reusable, meaning you should have to write a format 
parser only once and then be able to map the data read into whatever
+data structure (in our cases: property sources).</p>
+</div>
+<div class="sect3">
+<h4 id="_configurationdata">ConfigurationData</h4>
+<div class="paragraph">
+<p>Configuration formats can be very different. Some are simple key/value 
pairs, whereas other also consist of multiple sections (e.g. ini-files) or
+hierarchical data (e.g. yaml, xml). This is solved in Tamaya by mapping the 
configuration read into a normalized intermediary format called
+ConfigurationData:</p>
+</div>
+<div class="listingblock">
+<div class="title">ConfigurationData</div>
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-java" 
data-lang="java">public final class ConfigurationData {
+
+    public ConfigurationFormat getFormat();
+    public String getResource();
+
+    public Set&lt;String&gt; getSectionNames();
+    public Map&lt;String,String&gt; getSection(String name);
+
+    public boolean hasDefaultProperties();
+    public Map&lt;String,String&gt; getDefaultProperties();
+    public Map&lt;String,String&gt; getCombinedProperties();
+
+    public boolean isEmpty();
+}</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>In detail the data read from a file is organized into <em>sections</em> as 
follows:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>with getResource() and getFormat() the underlying resource and the format 
that read this data can be accessed.</p>
+</li>
+<li>
+<p>properties can be owned by</p>
+<div class="ulist">
+<ul>
+<li>
+<p>named sections</p>
+</li>
+<li>
+<p>an (unnamed) default section</p>
+</li>
+</ul>
+</div>
+</li>
+<li>
+<p>each section section contains a map of properties. Hereby the same key can 
be part of the default section and multiple
+named sections, depending on the configuration format.</p>
+</li>
+<li>
+<p>The method getSectionNames() returns a set of all section names.</p>
+</li>
+<li>
+<p>With getSection(String name) a named section can be accessed.</p>
+</li>
+<li>
+<p>With getDefaultSection() the 'default' section can be accessed. This is a 
convenience method.</p>
+</li>
+<li>
+<p>With getCombinedProperties() a flattened entry map can be accessed built up 
(by default) out of</p>
+<div class="ulist">
+<ul>
+<li>
+<p>all entries from the default section, without any changes.</p>
+</li>
+<li>
+<p>all entries from named sections, where the key for each entry is prefix 
with the section name and a '::' separator.</p>
+</li>
+</ul>
+</div>
+</li>
+<li>
+<p>The configuration format used determines the mapping of configuration data 
read into this structure. The format
+implementation can as well provide alternate implementations of how the data 
read should be mapped into the
+combined properties map.</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_configurationformat">ConfigurationFormat</h4>
+<div class="paragraph">
+<p>A ConfigurationFormat is basically an abstraction that reads a 
configuration resource (modelled by an InputStream) and
+creates a corresponding ConfigurationData instance.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-java" 
data-lang="java">public interface ConfigurationFormat {
+
+    String getName();
+    boolean accepts(URL url);
+    ConfigurationData readConfiguration(String resource, InputStream 
inputStream);
+}</code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_how_to_tranform_configurationdata_into_a_propertysource">How to 
tranform ConfigurationData into a PropertySource</h3>
+<div class="paragraph">
+<p>For for the conversion of ConfigurationData into a PropertySource different 
approaches can be useful:</p>
+</div>
+<div class="olist arabic">
+<ol class="arabic">
+<li>
+<p>The ConfigurationFormat that reads the data can provides all properties 
read either as sectioned properties
+or/and as default properties. The most simple cases is, where all properties 
have been added as 'default'
+properties. In this case the default properties can be used as the property 
sources properties without any change.</p>
+</li>
+<li>
+<p>If the format did also add section based properties, the combined 
properties returned can be used, hereby
+replacing the '::' separator with a '.' separator.</p>
+</li>
+<li>
+<p>In all other cases a custom mapping is useful, which can be acomplished by 
using the MappedConfigurationDataPropertySource
+and overriding the Map&lt;String,String&gt; populateData(ConfigurationData 
data) method.</p>
+</li>
+</ol>
+</div>
+<div class="paragraph">
+<p>In most cases the usage of a FlattenedDefaultPropertySource, is a good 
choice to start. This class
+provides a convenient default mapping and also allows to customized the 
mapping easily:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-java" 
data-lang="java">ConfigurationData data = ...;
+FlattenedDefaultPropertySource ps = new FlattenedDefaultPropertySource(data){
+  protected Map&lt;String, String&gt; populateData(ConfigurationData data) {
+    ...
+  }
+};</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Nevertheless, depending on the context, where a configuration source was 
read (classloader, time, source etc.) the
+resulting properties can have different semnatics, especially different 
priorities. Also section
+names may be mapped into different ordinals instead of using them as key 
prefixes (e.g. imagine configuration formats
+with a 'default', 'main', and 'overrides' sections). For such more complex or 
custom cases no simple mapping
+can be defined. Consequently the functionality mapping the normalized 
ConfigurationData read to the
+appropriate collection of PropertySource instances must be implemented.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_examples">Examples</h3>
+<div class="sect3">
+<h4 id="_mapping_ini_files">Mapping ini-Files</h4>
+<div class="paragraph">
+<p>Consider the following ini-file:</p>
+</div>
+<div class="listingblock">
+<div class="title">Example.ini</div>
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-listing" 
data-lang="listing">a=valA
+a.b=valB
+
+[section1]
+aa=sectionValA
+aa.b.c=SectionValC
+
+[section2]
+a=val2Section2</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>This file content coud be mapped to the following structure:</p>
+</div>
+<div class="listingblock">
+<div class="title">Mapping of Example.ini</div>
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-listing" 
data-lang="listing">a=valA
+a.b=valB
+section1::valA=sectionValA
+section1::a.b.c=SectionValC
+section2::a=val2Section2</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Nevertheless from the ConfigurationData instance a more complex algorithm 
can access all the different parts:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>the_default_ properties (a, a.b)</p>
+</li>
+<li>
+<p>the section section1, with properties aa, aa.b.c</p>
+</li>
+<li>
+<p>the section section2, qith properties a</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_mapping_xml_files">Mapping xml-Files</h4>
+<div class="paragraph">
+<p>The same concept can also be applied to xml-files. Consider the following 
configuration file:</p>
+</div>
+<div class="listingblock">
+<div class="title">Example.conf</div>
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-xml" 
data-lang="xml">&lt;config&gt;
+  &lt;default&gt;
+    &lt;a&gt;valA&lt;/a&gt;
+    &lt;a.b&gt;valB&lt;/a.B&gt;
+  &lt;/default&gt;
+
+  &lt;section id="section1"&gt;
+    &lt;param id="aa"&gt;sectionValA&lt;/aa&gt;
+    &lt;param id="aa.b.c"&gt;SectionValC&lt;/aa.b.c&gt;
+  &lt;/section&gt;
+  &lt;section id="section2"&gt;
+    &lt;param id="a"&gt;val2Section2&lt;/aa&gt;
+  &lt;/section&gt;
+&lt;/config&gt;</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>This file basically describes the same configuration as the ini-based 
version we have seen before. The formats
+module hereby ships with 3 format classes:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>PropertiesFormat providing support for .properties files.</p>
+</li>
+<li>
+<p>PropertiesXmlFormat providing support for xml.property files.</p>
+</li>
+<li>
+<p>IniConfiguratonFormat providing support for xml.property files.</p>
+</li>
+</ul>
+</div>
+</div>
+</div>
+</div>
+</div></p>
+
+                       <hr />
+               </div>
+       </div>
+       <div>
+                       <div id="push"></div>
+
+                   <div id="footer">
+                     <div class="container">
+                       <p class="muted credit">&copy; 2014-2016 Apache 
Software Foundation | Mixed with <a href="http://getbootstrap.com/";>Bootstrap 
v3.1.1</a>
+                                                       | Baked with <a 
href="http://jbake.org";>JBake <span>v2.5.0</span></a>
+                                                       at 
<span>2016-12-19</span>
+                                               </p>
+                                               <p>
+                                                               
<b>Disclaimer</b>
+                    Apache Tamaya (incubating) is an effort undergoing
+                    incubation at
+                    The Apache Software Foundation (ASF), sponsored by
+                    the name of Apache Incubator. Incubation is required of
+                    all newly accepted projects until a further review 
indicates
+                    that the infrastructure, communications, and decision 
making
+                    process have stabilized in a manner consistent with other
+                    successful ASF projects. While incubation status is not
+                    necessarily a reflection of the completeness or stability 
of
+                    the code, it does indicate that the project has yet to
+                    be fully endorsed by the ASF.<br />
+                    <a href="http://incubator.apache.org/guides/website.html"; 
style="border:0px;" target="_target"><img class="incubator-logo" 
src="../../logos/egg-logo2.png"/></a>
+                                                       </p>
+                     </div>
+                   </div>
+
+                   <!-- Le javascript
+                   ================================================== -->
+                   <!-- Placed at the end of the document so the pages load 
faster -->
+                   <script src="../../js/jquery-1.11.1.min.js"></script>
+                   <script src="../../js/bootstrap.min.js"></script>
+                   <script src="../../js/prettify.js"></script>
+
+       </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-site/blob/cb3c154a/documentation/extensions/mod_functions.html
----------------------------------------------------------------------
diff --git a/documentation/extensions/mod_functions.html 
b/documentation/extensions/mod_functions.html
new file mode 100644
index 0000000..c58d9b6
--- /dev/null
+++ b/documentation/extensions/mod_functions.html
@@ -0,0 +1,338 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";>
+
+<html xmlns="http://www.w3.org/1999/xhtml";>
+       <head>
+           <meta charset="utf-8"/>
+           <title>Apache Tamaya&amp;#8201;&amp;#8212;&amp;#8201;Extension: 
Functions</title>
+           <meta name="viewport" content="width=device-width, 
initial-scale=1.0"/>
+           <meta name="description" content=""/>
+           <meta name="author" content=""/>
+           <meta name="keywords" content=""/>
+           <meta name="generator" content="'JBake '+'${version}"/>
+
+           <!-- Le styles -->
+           <link href="../../css/bootstrap.min.css" rel="stylesheet"/>
+           <link href="../../css/asciidoctor.css" rel="stylesheet"/>
+           <link href="../../css/base.css" rel="stylesheet"/>
+           <link href="../../css/prettify.css" rel="stylesheet"/>
+
+           <!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
+           <!--[if lt IE 9]>
+             <script src="../../js/html5shiv.min.js"></script>
+           <![endif]-->
+
+           <!-- Fav and touch icons from ASF -->
+                       <link rel="shortcut icon" href="../../favicon.ico"/>
+                       <link rel="apple-touch-icon" sizes="57x57" 
href="../../favicons/apple-touch-icon-57x57.png"/>
+                 <link rel="apple-touch-icon" sizes="60x60" 
href="../../favicons/apple-touch-icon-60x60.png"/>
+                 <link rel="apple-touch-icon" sizes="72x72" 
href="../../favicons/apple-touch-icon-72x72.png"/>
+                 <link rel="apple-touch-icon" sizes="76x76" 
href="../../favicons/apple-touch-icon-76x76.png"/>
+                 <link rel="apple-touch-icon" sizes="114x114" 
href="../../favicons/apple-touch-icon-114x114.png"/>
+                 <link rel="apple-touch-icon" sizes="120x120" 
href="../../favicons/apple-touch-icon-120x120.png"/>
+                 <link rel="apple-touch-icon" sizes="144x144" 
href="../../favicons/apple-touch-icon-144x144.png"/>
+                 <link rel="apple-touch-icon" sizes="152x152" 
href="../../favicons/apple-touch-icon-152x152.png"/>
+                 <link rel="apple-touch-icon" sizes="180x180" 
href="../../favicons/apple-touch-icon-180x180.png"/>
+                 <link rel="icon" type="image/png" 
href="../../favicons/favicon-32x32.png" sizes="32x32"/>
+                 <link rel="icon" type="image/png" 
href="../../favicons/favicon-194x194.png" sizes="194x194"/>
+                 <link rel="icon" type="image/png" 
href="../../favicons/favicon-96x96.png" sizes="96x96"/>
+                 <link rel="icon" type="image/png" 
href="../../favicons/android-chrome-192x192.png" sizes="192x192"/>
+                 <link rel="icon" type="image/png" 
href="../../favicons/favicon-16x16.png" sizes="16x16"/>
+                 <link rel="manifest" href="../../favicons/manifest.json"/>
+                 <link rel="shortcut icon" href="../../favicons/favicon.ico"/>
+                 <meta name="msapplication-TileColor" content="#603cba"/>
+                 <meta name="msapplication-TileImage" 
content="../../favicons/mstile-144x144.png"/>
+                 <meta name="msapplication-config" 
content="../../favicons/browserconfig.xml"/>
+                 <meta name="theme-color" content="#303284"/>
+       </head>
+       <body onload="prettyPrint()">
+       <div id="wrap">
+               <div>
+
+         <!-- Fixed navbar -->
+      <div class="navbar navbar-default navbar-fixed-top" role="navigation">
+      <div class="container">
+        <div class="navbar-header">
+          <button type="button" class="navbar-toggle" data-toggle="collapse" 
data-target=".navbar-collapse">
+            <span class="sr-only">Toggle navigation</span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+          </button>
+          <a class="navbar-brand" href="../../">Apache Tamaya (incubating)</a>
+        </div>
+        <div class="navbar-collapse collapse">
+          <ul class="nav navbar-nav">
+                                               <li><a 
href="../../index.html">Home</a></li>
+                                               <li><a 
href="../../about.html">About</a></li>
+                                               <li class="dropdown">
+              <a href="#" class="dropdown-toggle" 
data-toggle="dropdown">Documentation <b class="caret"></b></a>
+              <ul class="dropdown-menu">
+                                                               <li><a 
href="../../documentation/usecases.html">Use Cases and Requirements</a></li>
+                                                               <li><a 
href="../../documentation/quickstart.html">Quickstart</a></li>
+                                                               <li><a 
href="../../documentation/api.html">API</a></li>
+                                                               <li><a 
href="../../documentation/core.html">Core</a></li>
+                                                               <li><a 
href="../../documentation/extensions.html">Extension Guide</a></li>
+                                                               <li 
class="divider"></li>
+                                                               <li><a 
href="../../apidocs/index.html">Javadoc ${tamaya_version} (external)</a></li>
+              </ul>
+            </li>
+                                               <li class="dropdown">
+              <a href="#" class="dropdown-toggle" 
data-toggle="dropdown">Development <b class="caret"></b></a>
+              <ul class="dropdown-menu">
+                                                               <li><a 
href="../../development/source.html">Sources</a></li>
+                                                               <li><a 
href="../../development/community.html">Community</a></li>
+                                                               <li><a 
href="../../devguide.html">Development Guide</a></li>
+                                                               <li><a 
href="../../release-guide.html">Release Guide</a></li>
+              </ul>
+            </li>
+                                               <li class="dropdown">
+              <a href="#" class="dropdown-toggle" 
data-toggle="dropdown">Releases <b class="caret"></b></a>
+              <ul class="dropdown-menu">
+                                                               <li><a 
href="../../download.html">Download</a></li>
+                                                               <li><a 
href="../../history.html">Release History</a></li>
+              </ul>
+            </li>
+<!-- Example:
+                                               <li class="dropdown">
+              <a href="#" class="dropdown-toggle" 
data-toggle="dropdown">Dropdown <b class="caret"></b></a>
+              <ul class="dropdown-menu">
+                <li><a href="#">Action</a></li>
+                <li><a href="#">Another action</a></li>
+                <li><a href="#">Something else here</a></li>
+                <li class="divider"></li>
+                <li class="dropdown-header">Nav header</li>
+                <li><a href="#">Separated link</a></li>
+                <li><a href="#">One more separated link</a></li>
+              </ul>
+            </li>
+-->
+                                               <li><a 
href="../../sitemap.xml">Sitemap</a></li>
+                                               <li><a 
href="../../feed.xml">Subscribe</a></li>
+          </ul>
+        </div><!--/.nav-collapse -->
+      </div>
+    </div>
+
+       </div>
+               <div class="container">
+
+                       <div class="page-header">
+                               <h1>Apache 
Tamaya&amp;#8201;&amp;#8212;&amp;#8201;Extension: Functions</h1>
+                       </div>
+
+                       <p><em>2016-12-19</em></p>
+
+                       <p><div id="preamble">
+<div class="sectionbody">
+<!-- toc disabled -->
+</div>
+</div>
+<div class="sect1">
+<h2 id="Core">Tamaya Functions (Extension Module)</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_overview">Overview</h3>
+<div class="paragraph">
+<p>Tamaya Functions is an extension module. Refer to the <a 
href="modules.html">extensions documentation</a> for further details.</p>
+</div>
+<div class="paragraph">
+<p>Tamaya Functions provides several functional extensions using the 
ConfigOperator,ConfigQuery extension points. Most
+functional extension are accessible from the ConfigurationFunction singleton. 
When importing its methods statically
+one can use the methods to achieve some interesting effects, e.g.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-java" 
data-lang="java">import static 
org.apache.tamaya.functions.ConfigurationFunctions.*;
+
+Set&lt;String&gt; sections = 
ConfigurationProvider.getConfiguration().with(areas("a", 
false).with(transitiveAreas());</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>The expression above returns all fully qualified section names that are 
child sections of the root section 'a'.
+So given the entries a.b.entry1, a.b.entry2, a.a.entry3, a.b.c.entry4 the 
reult would be a, a.a, a.b, a.b.c.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_compatibility">Compatibility</h3>
+<div class="paragraph">
+<p>The module is based on Java 7, so it can be used with Java 7 and beyond.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_installation">Installation</h3>
+<div class="paragraph">
+<p>For using the functionality shown in this document you only must add the 
corresponding dependency to your module:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-xml" 
data-lang="xml">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.tamaya.ext&lt;/groupId&gt;
+  &lt;artifactId&gt;tamaya-functions&lt;/artifactId&gt;
+  &lt;version&gt;{tamaya_version}&lt;/version&gt;
+&lt;/dependency&gt;</code></pre>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_the_provided_functions">The Provided Functions</h3>
+<div class="sect3">
+<h4 id="_functions_on_configurationfunctions">Functions on 
ConfigurationFunctions</h4>
+<div class="paragraph">
+<p>The following sections explain the provided functions defined by 
ConfigurationFunctions singleton.</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><strong>ConfigOperator filter(PropertyMatcher matcher)</strong> creates a 
ConfigOperator that creates a Configuration
+containing only keys that are selected by the given <em>matcher 
predicate</em>. The PropertyMatcher hereby allows to evaluate not only
+the <em>key</em>, but also the <em>value</em>.</p>
+</li>
+<li>
+<p><strong>ConfigOperator map(KeyMapper keyMapper)</strong> creates a 
ConfigOperator that maps the keys as defined
+by the given <em>keyMapper</em>.</p>
+</li>
+<li>
+<p><strong>ConfigOperator section(String section)</strong> creates  a 
ConfigOperator that creates a Configuration containing only
+entries that are direct or indirect members of the given section.</p>
+</li>
+<li>
+<p><strong>ConfigOperator section(String areaKey, boolean stripKeys)</strong> 
creates  a ConfigOperator that creates a Configuration
+containing only entries that are direct or indirect members of the given 
section. Hereby <em>stripKeys</em> allows to determine
+if the returned entries should be relative to the search criteria 
{{stripKeys=true}} or absolute keys.</p>
+</li>
+<li>
+<p><strong>isKeyInSection(String section, String sectionKey)</strong> allows 
to easily determine if a given <em>key</em> is a direct or indirect member
+of a given section.</p>
+</li>
+<li>
+<p><strong>boolean isKeyInSections(String key, String&#8230;&#8203; 
sectionKeys)</strong> allows to easily determine if one key of given
+<em>key</em> is a direct or indirect member of at least one of the given 
<em>sectionKeys</em>.</p>
+</li>
+<li>
+<p><strong>ConfigQuery&lt;Set&lt;String&gt;&gt; sections()</strong> allows to 
query all the contained fully qualified section names (the ones that
+also have parameters present).</p>
+</li>
+<li>
+<p><strong>ConfigQuery&lt;Set&lt;String&gt;&gt; transitiveSections()</strong> 
allows to query all the contained fully qualified section names,
+including the transitive closure of sections.</p>
+</li>
+<li>
+<p><strong>ConfigQuery&lt;Set&lt;String&gt;&gt; sections(final 
Predicate&lt;String&gt; predicate)</strong> allows to query all the contained 
fully
+qualified section names that are selected by the given <em>predicate</em>.</p>
+</li>
+<li>
+<p><strong>ConfigQuery&lt;Set&lt;String&gt;&gt; sections(final 
Predicate&lt;String&gt; predicate)</strong> allows to query all the contained 
fully
+qualified section names that are selected by the given <em>predicate</em>, 
including the transitive closure of sections
+identified.</p>
+</li>
+<li>
+<p><strong>ConfigOperator sectionsRecursive(String&#8230;&#8203; 
sectionKeys)</strong> provides a ConfigOperator that filters all sections 
identified
+by the given <em>sectionKeys</em> and its child sections.</p>
+</li>
+<li>
+<p><strong>ConfigOperator sectionRecursive(final boolean stripKeys, final 
String&#8230;&#8203; sectionKeys)</strong> provides a ConfigOperator
+that filters all sections identified by the given <em>sectionKeys</em> and its 
child sections. <em>stripKeys</em> allows to
+determine if the resulting configuration should be relative to the selected 
areas ({{stripKeys=true}}) or
+absolute (filtering only).</p>
+</li>
+<li>
+<p><strong>ConfigQuery&lt;String&gt; jsonInfo()</strong> returns a query that 
converts a Configuration into a JSON formatted String
+representation.</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_functions_on_propertysourcefunctions">Functions on 
PropertySourceFunctions</h4>
+<div class="paragraph">
+<p>The following sections explain the provided functions defined by 
PropertySourceFunctions singleton.</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><strong>PropertySource addMetaData(PropertySource propertySource, 
Map&lt;String,String&gt; metaData)</strong> Creates a new PropertySource
+with the given metadata added.</p>
+</li>
+<li>
+<p><strong>boolean isKeyInSection(String key, String sectionKey)</strong> 
Checks if the given <em>key</em> is a direct or indirect member of
+one of the given <em>sectionKey</em>.</p>
+</li>
+<li>
+<p><strong>boolean isKeyInSections(String key, String&#8230;&#8203; 
sectionKeys)</strong> Checks if the given <em>key</em> is a direct or indirect 
member of
+one of one of the given <em>sectionKeys</em>.</p>
+</li>
+<li>
+<p><strong>Set&lt;String&gt; sections(Map&lt;String, String&gt; 
properties)</strong> Extracts the sections from the given properties.</p>
+</li>
+<li>
+<p><strong>Set&lt;String&gt; transitiveSections(Map&lt;String, String&gt; 
properties)</strong> Extracts the transitive sections from the given
+properties.</p>
+</li>
+<li>
+<p><strong>Set&lt;String&gt; sections(Map&lt;String, String&gt; properties, 
final Predicate&lt;String&gt; predicate)</strong> Extracts the sections
+from the given properties, also filtering with the given predicate.</p>
+</li>
+<li>
+<p><strong>Set&lt;String&gt; transitiveSections(Map&lt;String, String&gt; 
properties, Predicate&lt;String&gt; predicate)</strong> Extracts the transitive
+sections from the given properties, also filtering with the given 
predicate.</p>
+</li>
+<li>
+<p><strong>Map&lt;String,String&gt; sectionsRecursive(Map&lt;String, 
String&gt; properties, String&#8230;&#8203; sectionKeys)</strong> Creates w 
PropertySource
+only containing the sections that a direct or indirect children of the given 
<em>sectionKeys</em>.</p>
+</li>
+<li>
+<p><strong>Map&lt;String,String&gt; sectionRecursive(Map&lt;String, String&gt; 
properties, boolean stripKeys, String&#8230;&#8203; sectionKeys)</strong> 
Creates w PropertySource
+only containing the sections that a direct or indirect children of the given 
<em>sectionKeys</em>. With <em>stripKeys</em> one can
+select of the returned values should be relative to its selection of be fully 
qualified.</p>
+</li>
+<li>
+<p><strong>String stripSectionKeys(String key, String&#8230;&#8203; 
sectionKeys)</strong> This function strips away the matching section key as 
given
+in <em>sectionKeys</em> from a given <em>key</em>.</p>
+</li>
+</ul>
+</div>
+</div>
+</div>
+</div>
+</div></p>
+
+                       <hr />
+               </div>
+       </div>
+       <div>
+                       <div id="push"></div>
+
+                   <div id="footer">
+                     <div class="container">
+                       <p class="muted credit">&copy; 2014-2016 Apache 
Software Foundation | Mixed with <a href="http://getbootstrap.com/";>Bootstrap 
v3.1.1</a>
+                                                       | Baked with <a 
href="http://jbake.org";>JBake <span>v2.5.0</span></a>
+                                                       at 
<span>2016-12-19</span>
+                                               </p>
+                                               <p>
+                                                               
<b>Disclaimer</b>
+                    Apache Tamaya (incubating) is an effort undergoing
+                    incubation at
+                    The Apache Software Foundation (ASF), sponsored by
+                    the name of Apache Incubator. Incubation is required of
+                    all newly accepted projects until a further review 
indicates
+                    that the infrastructure, communications, and decision 
making
+                    process have stabilized in a manner consistent with other
+                    successful ASF projects. While incubation status is not
+                    necessarily a reflection of the completeness or stability 
of
+                    the code, it does indicate that the project has yet to
+                    be fully endorsed by the ASF.<br />
+                    <a href="http://incubator.apache.org/guides/website.html"; 
style="border:0px;" target="_target"><img class="incubator-logo" 
src="../../logos/egg-logo2.png"/></a>
+                                                       </p>
+                     </div>
+                   </div>
+
+                   <!-- Le javascript
+                   ================================================== -->
+                   <!-- Placed at the end of the document so the pages load 
faster -->
+                   <script src="../../js/jquery-1.11.1.min.js"></script>
+                   <script src="../../js/bootstrap.min.js"></script>
+                   <script src="../../js/prettify.js"></script>
+
+       </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-site/blob/cb3c154a/documentation/extensions/mod_injection.html
----------------------------------------------------------------------
diff --git a/documentation/extensions/mod_injection.html 
b/documentation/extensions/mod_injection.html
new file mode 100644
index 0000000..c11c218
--- /dev/null
+++ b/documentation/extensions/mod_injection.html
@@ -0,0 +1,700 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";>
+
+<html xmlns="http://www.w3.org/1999/xhtml";>
+       <head>
+           <meta charset="utf-8"/>
+           <title>Apache Tamaya&amp;#8201;&amp;#8212;&amp;#8201;Extension: 
Injection</title>
+           <meta name="viewport" content="width=device-width, 
initial-scale=1.0"/>
+           <meta name="description" content=""/>
+           <meta name="author" content=""/>
+           <meta name="keywords" content=""/>
+           <meta name="generator" content="'JBake '+'${version}"/>
+
+           <!-- Le styles -->
+           <link href="../../css/bootstrap.min.css" rel="stylesheet"/>
+           <link href="../../css/asciidoctor.css" rel="stylesheet"/>
+           <link href="../../css/base.css" rel="stylesheet"/>
+           <link href="../../css/prettify.css" rel="stylesheet"/>
+
+           <!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
+           <!--[if lt IE 9]>
+             <script src="../../js/html5shiv.min.js"></script>
+           <![endif]-->
+
+           <!-- Fav and touch icons from ASF -->
+                       <link rel="shortcut icon" href="../../favicon.ico"/>
+                       <link rel="apple-touch-icon" sizes="57x57" 
href="../../favicons/apple-touch-icon-57x57.png"/>
+                 <link rel="apple-touch-icon" sizes="60x60" 
href="../../favicons/apple-touch-icon-60x60.png"/>
+                 <link rel="apple-touch-icon" sizes="72x72" 
href="../../favicons/apple-touch-icon-72x72.png"/>
+                 <link rel="apple-touch-icon" sizes="76x76" 
href="../../favicons/apple-touch-icon-76x76.png"/>
+                 <link rel="apple-touch-icon" sizes="114x114" 
href="../../favicons/apple-touch-icon-114x114.png"/>
+                 <link rel="apple-touch-icon" sizes="120x120" 
href="../../favicons/apple-touch-icon-120x120.png"/>
+                 <link rel="apple-touch-icon" sizes="144x144" 
href="../../favicons/apple-touch-icon-144x144.png"/>
+                 <link rel="apple-touch-icon" sizes="152x152" 
href="../../favicons/apple-touch-icon-152x152.png"/>
+                 <link rel="apple-touch-icon" sizes="180x180" 
href="../../favicons/apple-touch-icon-180x180.png"/>
+                 <link rel="icon" type="image/png" 
href="../../favicons/favicon-32x32.png" sizes="32x32"/>
+                 <link rel="icon" type="image/png" 
href="../../favicons/favicon-194x194.png" sizes="194x194"/>
+                 <link rel="icon" type="image/png" 
href="../../favicons/favicon-96x96.png" sizes="96x96"/>
+                 <link rel="icon" type="image/png" 
href="../../favicons/android-chrome-192x192.png" sizes="192x192"/>
+                 <link rel="icon" type="image/png" 
href="../../favicons/favicon-16x16.png" sizes="16x16"/>
+                 <link rel="manifest" href="../../favicons/manifest.json"/>
+                 <link rel="shortcut icon" href="../../favicons/favicon.ico"/>
+                 <meta name="msapplication-TileColor" content="#603cba"/>
+                 <meta name="msapplication-TileImage" 
content="../../favicons/mstile-144x144.png"/>
+                 <meta name="msapplication-config" 
content="../../favicons/browserconfig.xml"/>
+                 <meta name="theme-color" content="#303284"/>
+       </head>
+       <body onload="prettyPrint()">
+       <div id="wrap">
+               <div>
+
+         <!-- Fixed navbar -->
+      <div class="navbar navbar-default navbar-fixed-top" role="navigation">
+      <div class="container">
+        <div class="navbar-header">
+          <button type="button" class="navbar-toggle" data-toggle="collapse" 
data-target=".navbar-collapse">
+            <span class="sr-only">Toggle navigation</span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+          </button>
+          <a class="navbar-brand" href="../../">Apache Tamaya (incubating)</a>
+        </div>
+        <div class="navbar-collapse collapse">
+          <ul class="nav navbar-nav">
+                                               <li><a 
href="../../index.html">Home</a></li>
+                                               <li><a 
href="../../about.html">About</a></li>
+                                               <li class="dropdown">
+              <a href="#" class="dropdown-toggle" 
data-toggle="dropdown">Documentation <b class="caret"></b></a>
+              <ul class="dropdown-menu">
+                                                               <li><a 
href="../../documentation/usecases.html">Use Cases and Requirements</a></li>
+                                                               <li><a 
href="../../documentation/quickstart.html">Quickstart</a></li>
+                                                               <li><a 
href="../../documentation/api.html">API</a></li>
+                                                               <li><a 
href="../../documentation/core.html">Core</a></li>
+                                                               <li><a 
href="../../documentation/extensions.html">Extension Guide</a></li>
+                                                               <li 
class="divider"></li>
+                                                               <li><a 
href="../../apidocs/index.html">Javadoc ${tamaya_version} (external)</a></li>
+              </ul>
+            </li>
+                                               <li class="dropdown">
+              <a href="#" class="dropdown-toggle" 
data-toggle="dropdown">Development <b class="caret"></b></a>
+              <ul class="dropdown-menu">
+                                                               <li><a 
href="../../development/source.html">Sources</a></li>
+                                                               <li><a 
href="../../development/community.html">Community</a></li>
+                                                               <li><a 
href="../../devguide.html">Development Guide</a></li>
+                                                               <li><a 
href="../../release-guide.html">Release Guide</a></li>
+              </ul>
+            </li>
+                                               <li class="dropdown">
+              <a href="#" class="dropdown-toggle" 
data-toggle="dropdown">Releases <b class="caret"></b></a>
+              <ul class="dropdown-menu">
+                                                               <li><a 
href="../../download.html">Download</a></li>
+                                                               <li><a 
href="../../history.html">Release History</a></li>
+              </ul>
+            </li>
+<!-- Example:
+                                               <li class="dropdown">
+              <a href="#" class="dropdown-toggle" 
data-toggle="dropdown">Dropdown <b class="caret"></b></a>
+              <ul class="dropdown-menu">
+                <li><a href="#">Action</a></li>
+                <li><a href="#">Another action</a></li>
+                <li><a href="#">Something else here</a></li>
+                <li class="divider"></li>
+                <li class="dropdown-header">Nav header</li>
+                <li><a href="#">Separated link</a></li>
+                <li><a href="#">One more separated link</a></li>
+              </ul>
+            </li>
+-->
+                                               <li><a 
href="../../sitemap.xml">Sitemap</a></li>
+                                               <li><a 
href="../../feed.xml">Subscribe</a></li>
+          </ul>
+        </div><!--/.nav-collapse -->
+      </div>
+    </div>
+
+       </div>
+               <div class="container">
+
+                       <div class="page-header">
+                               <h1>Apache 
Tamaya&amp;#8201;&amp;#8212;&amp;#8201;Extension: Injection</h1>
+                       </div>
+
+                       <p><em>2016-12-19</em></p>
+
+                       <p><div id="preamble">
+<div class="sectionbody">
+<!-- toc disabled -->
+</div>
+</div>
+<div class="sect1">
+<h2 id="Core">Tamaya Injection (Extension Module)</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_overview">Overview</h3>
+<div class="paragraph">
+<p>Tamaya Injection is an extension module. Refer to the <a 
href="modules.html">extensions documentation</a> for further details
+about modules.</p>
+</div>
+<div class="paragraph">
+<p>Tamaya Injection provides functionality for injecting configured values 
into beans, or creating configuration
+template instances.</p>
+</div>
+<div class="paragraph">
+<p>Inversion of Control (aka IoC/the Hollywood Principle) has proven to be 
very useful and effective in avoiding boilerplate
+code. In Java there are different frameworks available that all provide IoC 
mechanisms. Unfortunately IoC is not a
+built-in language feature. So for a portable solution that works also in Java 
SE Tamaya itself has to provide the
+according injection services. This module adds this functionality to 
Tamaya.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_compatibility">Compatibility</h3>
+<div class="paragraph">
+<p>The module is based on Java 7, so it can be used with Java 7 and beyond.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_installation">Installation</h3>
+<div class="paragraph">
+<p>Basically Tamaya&#8217;s injection API is deployed as API artifact:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-xml" 
data-lang="xml">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.tamaya.ext&lt;/groupId&gt;
+  &lt;artifactId&gt;tamaya-injection-api&lt;/artifactId&gt;
+  &lt;version&gt;{tamaya_version}&lt;/version&gt;
+&lt;/dependency&gt;</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>To use injection with Java SE you must add the corresponding dependency to 
your module:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-xml" 
data-lang="xml">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.tamaya.ext&lt;/groupId&gt;
+  &lt;artifactId&gt;tamaya-injection&lt;/artifactId&gt;
+  &lt;version&gt;{tamaya_version}&lt;/version&gt;
+&lt;/dependency&gt;</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Similarly there are other injection implementations available, targetig 
platforms such as</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Spring, Spring Boot</p>
+</li>
+<li>
+<p>Java EE/CDI</p>
+</li>
+<li>
+<p>OSGI, Apache Felix/Apache Karaf</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_core_concepts">Core Concepts</h3>
+<div class="paragraph">
+<p>Basically you annotate fields or methods in your beans with @Config to 
enable configuration injection. Tamaya
+additionally defines further annotations that allo you to define additional 
aspects such as default values, custom
+converters etc. The following example illustrates the basic functionality:
+code snippet:</p>
+</div>
+<div class="listingblock">
+<div class="title">Annotated Example Class</div>
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-java" 
data-lang="java">package foo.bar;
+
+public class ConfiguredClass {
+
+    // resolved by default, using property name, class and package name: 
foo.bar.ConfiguredClass.testProperty
+    private String testProperty;
+
+    // Trying to resolve mutiple keys, with a default value, if none could be 
resolved
+    @Config({"a.b.c.key1","a.b.legacyKey",area1.key2"}, defaultValue="The 
current \\${JAVA_HOME} env property is ${env:JAVA_HOME}.")
+    String value1;
+
+    // Typical case
+    @Config("a.b.c.key2")
+    private int value2;
+
+    // resolved by default as foo.bar.ConfiguredClass.accessUrl
+    // Using a (default) String -&gt; URL converter
+    @Config(defaultValue="http://127.0.0.1:8080/res/api/v1/info.json";)
+    private URL accessUrl;
+
+    // Config injection disabled for this property
+    @NoConfig
+    private Integer int1;
+
+    // Overriding the String -&gt; BigDecimal converter with a custom 
implementation.
+    @Config("BD")
+    @WithPropertyConverter(MyBigDecimalRoundingAdapter.class)
+    private BigDecimal bigNumber;
+
+    ...
+}</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>When configuring data or configuration classes it is also possible to 
auto-inject the fields identified. For activating
+this feature a class must be annotated with @ConfigAutoInject:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-java" 
data-lang="java">. An autoinjected bean class
+--------------------------------------------
+package a.b;</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>@ConfigAutoInject
+public final class Tenant {
+  private int id;
+  private String name;
+  private String description;
+  @NoConfig // prevents auto injection for this field
+  private String id2;</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>  public int getId(){
+    return id;
+  }
+  public String getName(){
+    return name;
+  }
+  public String getDescription(){
+    return description;
+  }
+}</pre>
+</div>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>These examples do not show all possibilities provided. Configuring 
instance of these
+class using Tamaya is very simple: Just pass the instance to Tamaya to let
+Tamaya inject the configuration (or throw a +ConfigException+, if this is not 
possible):
+
+[source,java]
+.Configuring the +ConfiguredClass+ Instance</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>ConfiguredClass classInstance = new ConfiguredClass();
+ConfigurationInjector.configure(configuredClass);</p>
+</div>
+<div class="paragraph">
+<p>Tenant tenant = new Tenant();
+ConfigurationInjector.configure(tenant);</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>NOTE: Configuration injection works similarly, when used with other 
integration modules, e.g. when Tamaya is used
+with CDI, Spring or within an OSGI container. For further details refer also 
to the corresponding integration module's
+documentation.
+
+
+=== The Annotations in detail
+==== The ConfigurationInjector
+
+The +ConfigurationInjector+ interface provides methods that allow any kind of 
instances to be configured
+by passing the instances to +T 
ConfigurationInjector.getInstance().configure(T);+. The classes passed
+hereby must not be annotated with +@Config+ for being configurable. By default 
Tamaya
+tries to determine configuration for each property of an instance passed, 
using the following resolution policy:
+
+Given a class +a.b.MyClass+ and a field +myField+ it would try to look up the 
following keys:
+[source, listing]</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>a.b.MyClass.myField
+a.b.MyClass.my-field
+MyClass.myField
+MyClass.my-field
+myField
+my-field</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>So given the following properties:
+
+[source, properties]</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>a.b.Tenant.id=1234
+Tenant.description=Any kind of tenant.
+name=&lt;unnamed&gt;</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>==== Accessing Supplier instances
+
+In many cases you want to create a supplier that simply creates instances that 
are correctly configured as defined
+by the current context. This can be done using +Suppliers+:
+
+[source, java]</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Supplier&lt;Tenant&gt; configuredTenantSupplier = 
ConfigurationInjector.getInstance().getConfiguredSupplier(
+  new Supplier&lt;Tenant&gt;(){
+     public Tenant get(){
+       return new Tenant();
+     }
+});</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>With Java 8 it's even more simple:
+
+[source, java]</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Supplier&lt;Tenant&gt; configuredTenantSupplier = 
ConfigurationInjector.getInstance().getConfiguredSupplier(
+  Tenant::new);</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>Hereby this annotation can be used in multiple ways and combined with 
other annotations such as
++@WithLoadPolicy+, +@WithConfigOperator+, +@WithPropertyConverter+.
+
+==== Minimal Example
+
+To illustrate the mechanism below the most simple variant of a configured 
class is given:
+
+[source,java]
+.Most simple configured class</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>pubic class ConfiguredItem{
+  @Config
+  private String aValue;
+}</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>When this class is configured, e.g. by passing it to 
+ConfigurationInjector.getInstance().configure(Object)+,
+the following is happening:
+
+* The current valid +Configuration+ is evaluated by calling +Configuration cfg 
= ConfigurationProvider.getConfiguration();+
+* The current property value (String) is evaluated by calling 
+cfg.get("aValue");+ for each possible key (mutliple
+  keys are possible).
+* if not successful, an error is thrown (+ConfigException+)
+* On success, since no type conversion is involved, the value is injected.
+
+==== Using @DefaultValue
+
+In the next example we explicitly define the property value:
+[source,java]</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>pubic class ConfiguredItem{</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>  @Config(value={"aValue", "a.b.value","a.b.deprecated.value"}, 
defaultValue="${env:java.version}")
+  private String aValue;
+}</pre>
+</div>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>==== Inject a DynamicValue Property
+
+Within this example we evaluate a dynamic value. This mechanism allows you to 
listen for configuration changes and to
+commit new values exactly, when convenient for you.
+
+[source,java]</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>pubic class ConfiguredItem{</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>  @Config(value={"aValue", "a.b.value","a.b.deprecated.value"}, 
defaultValue="${env:java.version}")
+  private DynamicValue aValue;
+}</pre>
+</div>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>The +DynamicValue+ provides you the following functionality:
+
+[source,java]</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>public interface DynamicValue&lt;T&gt; {</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>enum UpdatePolicy{
+    IMMEDIATE,
+    EXPLCIT,
+    NEVER,
+    LOG_AND_DISCARD
+}</pre>
+</div>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>T get();
+T getNewValue();
+T evaluateValue();
+T commitAndGet();
+void commit();
+void discard();
+boolean updateValue();</pre>
+</div>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>void setUpdatePolicy(UpdatePolicy updatePolicy);
+UpdatePolicy getUpdatePolicy();
+void addListener(PropertyChangeListener l);
+void removeListener(PropertyChangeListener l);</pre>
+</div>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>boolean isPresent();
+T orElse(T other);
+// Enabled with Java 8
+// T orElseGet(ConfiguredItemSupplier&lt;? extends T&gt; other);
+// &lt;X extends Throwable&gt; T orElseThrow(ConfiguredItemSupplier&lt;? 
extends X&gt; exceptionSupplier) throws X;</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>}</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>Summarizing this class looks somehow similar to the new +Optional+ class 
added with Java 8. It provides
+a wrapper class around a configured instance. Additionally this class provides 
functionality that gives
+active control, to manage a configured value based on a ++LoadingPolicy+:
+
+* +IMMEDEATE+ means that when the configuration system detects a change on the 
underlying value, the new value
+  is automatically applied without any further notice.
+* +EXPLICIT+ means that a new configuration value is signalled by setting the 
+newValue+ property. if +getNewValue()+
+  returns a non null value, the new value can be applied by calling 
+commit()+. You can always access the newest value,
+  hereby implicitly applying it, by accessing it via +commitAndGet()+. Also it 
is possible ti ignore a change by calling
+  +discard()+.
+* +NEVER+ means the configured value is evaluated once and never updated. All 
changes are silently discarded.
+* +LOG_AND_DISCARD+ similar to +NEVER+, but changes are logged before they are 
discarded.
+
+Summarizing a +DynamicValue+ allows you
+
+* to reload actively updates of configured values.
+* update implicitly or explicitly all changes on the value.
+* add listeners that observe changes of a certain value.
+
+Dynamic values also allow on-the-fly reevaluation of the value by calling 
+evaluateValue()+. Hereby the value of the
+instance is not changed.
+
+
+==== Ommitting Injection using @NoConfig
+
+Adding the @NoConfig annotation prevents a field or method to be auto-injected 
from
+configuration. This is especially useful, if a type is annotated as 
@ConfigAutoInject with auto-confiuration
+turned on as follows:
+
+[source,java]</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>@ConfigAutoInject
+pubic class ConfiguredItem{</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>@NoConfig
+private transient int sum;</pre>
+</div>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>  private String a;
+  private String b;
+  Private String c;
+}</pre>
+</div>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>In this case the fields +a,b,c+ are configured, whereas the field +sum+ 
is ignored regarding
+configuration.
+
+==== Adding custom operators using @WithConfigOperator
+
+The @WithConfigOperator annotation allows you define a class of type 
+ConfigOperator+, to being applied
+to the final +Configuration+, BEFORE the value is injected. This can be used 
for various use cases, e.g.
+filtering or validating the visible properties for a certain use case.
+
+[source,java]</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>@WithConfigOperator(MyConfigView.class)
+pubic class ConfiguredItem{</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>@Config
+private String a;</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>}</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>==== Adding custom property converters using @WithPropertyConverter
+
+The @WithPropertyConverter annotation allows you to define a class of type 
+PropertyConverter+, to be applied
+on a property configured to convert the String value to the expected injected 
type. This can be used for
+various use cases, e.g. adding custom formats, config models, decryption.
+
+[source,java]</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>pubic class ConfiguredItem{</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>@WithPropertyConverter(MyPropertyConverter.class)
+@Config
+private String a;</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>}</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>==== Defining the loading policy to be applied to configured values using 
@WithLoadPolicy
+
+The @WithLoadPolicy annotation allows to define the loading behaviour to be 
applied. The +LoadPolicy+
+enum hereby defines the various loading modes.
+
+[source,java]</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>@WithLoadPolicy(LoadPolicy.NEVER)
+pubic class BootTimeStableConfig{</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>@WithPropertyConverter(MyPropertyConverter.class)
+@Config
+private String a;</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>}</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>=== Configuration Events
+
+Similar to CDI Tamaya publishes Configuration events, when instances were 
configured. It depends on the effective
+event backend in use, if and how events are published:
+
+* when you have the CDI extension active events are published using the 
default CDI event mechanism.
+* in all other scenarios events are delegated to the +tamaya-events+ module, 
if available,
+* if no event delegation is available no events are published.
+
+The event published is very simple:
+
+[source,java]</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>public interface ConfiguredType {
+    Class getType();
+    String getName();
+    Collection&lt;ConfiguredField&gt; getConfiguredFields();
+    Collection&lt;ConfiguredMethod&gt; getConfiguredMethods();
+    void configure(Object instance, Configuration config);
+}</p>
+</div>
+<div class="paragraph">
+<p>public interface ConfiguredField {
+    Class&lt;?&gt; getType();
+    Collection&lt;String&gt; getConfiguredKeys();
+    String getName();
+    String getSignature();
+    Field getAnnotatedField();
+    void configure(Object instance, Configuration config);
+}</p>
+</div>
+<div class="paragraph">
+<p>public interface ConfiguredMethod {
+    Collection&lt;String&gt; getConfiguredKeys();
+    Class&lt;?&gt;[] getParameterTypes();
+    Method getAnnotatedMethod();
+    String getName();
+    String getSignature();
+    void configure(Object instance, Configuration config);
+}</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre></pre>
+</div>
+</div>
+</div>
+</div>
+</div></p>
+
+                       <hr />
+               </div>
+       </div>
+       <div>
+                       <div id="push"></div>
+
+                   <div id="footer">
+                     <div class="container">
+                       <p class="muted credit">&copy; 2014-2016 Apache 
Software Foundation | Mixed with <a href="http://getbootstrap.com/";>Bootstrap 
v3.1.1</a>
+                                                       | Baked with <a 
href="http://jbake.org";>JBake <span>v2.5.0</span></a>
+                                                       at 
<span>2016-12-19</span>
+                                               </p>
+                                               <p>
+                                                               
<b>Disclaimer</b>
+                    Apache Tamaya (incubating) is an effort undergoing
+                    incubation at
+                    The Apache Software Foundation (ASF), sponsored by
+                    the name of Apache Incubator. Incubation is required of
+                    all newly accepted projects until a further review 
indicates
+                    that the infrastructure, communications, and decision 
making
+                    process have stabilized in a manner consistent with other
+                    successful ASF projects. While incubation status is not
+                    necessarily a reflection of the completeness or stability 
of
+                    the code, it does indicate that the project has yet to
+                    be fully endorsed by the ASF.<br />
+                    <a href="http://incubator.apache.org/guides/website.html"; 
style="border:0px;" target="_target"><img class="incubator-logo" 
src="../../logos/egg-logo2.png"/></a>
+                                                       </p>
+                     </div>
+                   </div>
+
+                   <!-- Le javascript
+                   ================================================== -->
+                   <!-- Placed at the end of the document so the pages load 
faster -->
+                   <script src="../../js/jquery-1.11.1.min.js"></script>
+                   <script src="../../js/bootstrap.min.js"></script>
+                   <script src="../../js/prettify.js"></script>
+
+       </div>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-site/blob/cb3c154a/documentation/extensions/mod_jodatime.html
----------------------------------------------------------------------
diff --git a/documentation/extensions/mod_jodatime.html 
b/documentation/extensions/mod_jodatime.html
new file mode 100644
index 0000000..2eab0e3
--- /dev/null
+++ b/documentation/extensions/mod_jodatime.html
@@ -0,0 +1,223 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";>
+
+<html xmlns="http://www.w3.org/1999/xhtml";>
+       <head>
+           <meta charset="utf-8"/>
+           <title>Apache Tamaya&amp;#8201;&amp;#8212;&amp;#8201;Extension: 
JodaTime</title>
+           <meta name="viewport" content="width=device-width, 
initial-scale=1.0"/>
+           <meta name="description" content=""/>
+           <meta name="author" content=""/>
+           <meta name="keywords" content=""/>
+           <meta name="generator" content="'JBake '+'${version}"/>
+
+           <!-- Le styles -->
+           <link href="../../css/bootstrap.min.css" rel="stylesheet"/>
+           <link href="../../css/asciidoctor.css" rel="stylesheet"/>
+           <link href="../../css/base.css" rel="stylesheet"/>
+           <link href="../../css/prettify.css" rel="stylesheet"/>
+
+           <!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
+           <!--[if lt IE 9]>
+             <script src="../../js/html5shiv.min.js"></script>
+           <![endif]-->
+
+           <!-- Fav and touch icons from ASF -->
+                       <link rel="shortcut icon" href="../../favicon.ico"/>
+                       <link rel="apple-touch-icon" sizes="57x57" 
href="../../favicons/apple-touch-icon-57x57.png"/>
+                 <link rel="apple-touch-icon" sizes="60x60" 
href="../../favicons/apple-touch-icon-60x60.png"/>
+                 <link rel="apple-touch-icon" sizes="72x72" 
href="../../favicons/apple-touch-icon-72x72.png"/>
+                 <link rel="apple-touch-icon" sizes="76x76" 
href="../../favicons/apple-touch-icon-76x76.png"/>
+                 <link rel="apple-touch-icon" sizes="114x114" 
href="../../favicons/apple-touch-icon-114x114.png"/>
+                 <link rel="apple-touch-icon" sizes="120x120" 
href="../../favicons/apple-touch-icon-120x120.png"/>
+                 <link rel="apple-touch-icon" sizes="144x144" 
href="../../favicons/apple-touch-icon-144x144.png"/>
+                 <link rel="apple-touch-icon" sizes="152x152" 
href="../../favicons/apple-touch-icon-152x152.png"/>
+                 <link rel="apple-touch-icon" sizes="180x180" 
href="../../favicons/apple-touch-icon-180x180.png"/>
+                 <link rel="icon" type="image/png" 
href="../../favicons/favicon-32x32.png" sizes="32x32"/>
+                 <link rel="icon" type="image/png" 
href="../../favicons/favicon-194x194.png" sizes="194x194"/>
+                 <link rel="icon" type="image/png" 
href="../../favicons/favicon-96x96.png" sizes="96x96"/>
+                 <link rel="icon" type="image/png" 
href="../../favicons/android-chrome-192x192.png" sizes="192x192"/>
+                 <link rel="icon" type="image/png" 
href="../../favicons/favicon-16x16.png" sizes="16x16"/>
+                 <link rel="manifest" href="../../favicons/manifest.json"/>
+                 <link rel="shortcut icon" href="../../favicons/favicon.ico"/>
+                 <meta name="msapplication-TileColor" content="#603cba"/>
+                 <meta name="msapplication-TileImage" 
content="../../favicons/mstile-144x144.png"/>
+                 <meta name="msapplication-config" 
content="../../favicons/browserconfig.xml"/>
+                 <meta name="theme-color" content="#303284"/>
+       </head>
+       <body onload="prettyPrint()">
+       <div id="wrap">
+               <div>
+
+         <!-- Fixed navbar -->
+      <div class="navbar navbar-default navbar-fixed-top" role="navigation">
+      <div class="container">
+        <div class="navbar-header">
+          <button type="button" class="navbar-toggle" data-toggle="collapse" 
data-target=".navbar-collapse">
+            <span class="sr-only">Toggle navigation</span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+          </button>
+          <a class="navbar-brand" href="../../">Apache Tamaya (incubating)</a>
+        </div>
+        <div class="navbar-collapse collapse">
+          <ul class="nav navbar-nav">
+                                               <li><a 
href="../../index.html">Home</a></li>
+                                               <li><a 
href="../../about.html">About</a></li>
+                                               <li class="dropdown">
+              <a href="#" class="dropdown-toggle" 
data-toggle="dropdown">Documentation <b class="caret"></b></a>
+              <ul class="dropdown-menu">
+                                                               <li><a 
href="../../documentation/usecases.html">Use Cases and Requirements</a></li>
+                                                               <li><a 
href="../../documentation/quickstart.html">Quickstart</a></li>
+                                                               <li><a 
href="../../documentation/api.html">API</a></li>
+                                                               <li><a 
href="../../documentation/core.html">Core</a></li>
+                                                               <li><a 
href="../../documentation/extensions.html">Extension Guide</a></li>
+                                                               <li 
class="divider"></li>
+                                                               <li><a 
href="../../apidocs/index.html">Javadoc ${tamaya_version} (external)</a></li>
+              </ul>
+            </li>
+                                               <li class="dropdown">
+              <a href="#" class="dropdown-toggle" 
data-toggle="dropdown">Development <b class="caret"></b></a>
+              <ul class="dropdown-menu">
+                                                               <li><a 
href="../../development/source.html">Sources</a></li>
+                                                               <li><a 
href="../../development/community.html">Community</a></li>
+                                                               <li><a 
href="../../devguide.html">Development Guide</a></li>
+                                                               <li><a 
href="../../release-guide.html">Release Guide</a></li>
+              </ul>
+            </li>
+                                               <li class="dropdown">
+              <a href="#" class="dropdown-toggle" 
data-toggle="dropdown">Releases <b class="caret"></b></a>
+              <ul class="dropdown-menu">
+                                                               <li><a 
href="../../download.html">Download</a></li>
+                                                               <li><a 
href="../../history.html">Release History</a></li>
+              </ul>
+            </li>
+<!-- Example:
+                                               <li class="dropdown">
+              <a href="#" class="dropdown-toggle" 
data-toggle="dropdown">Dropdown <b class="caret"></b></a>
+              <ul class="dropdown-menu">
+                <li><a href="#">Action</a></li>
+                <li><a href="#">Another action</a></li>
+                <li><a href="#">Something else here</a></li>
+                <li class="divider"></li>
+                <li class="dropdown-header">Nav header</li>
+                <li><a href="#">Separated link</a></li>
+                <li><a href="#">One more separated link</a></li>
+              </ul>
+            </li>
+-->
+                                               <li><a 
href="../../sitemap.xml">Sitemap</a></li>
+                                               <li><a 
href="../../feed.xml">Subscribe</a></li>
+          </ul>
+        </div><!--/.nav-collapse -->
+      </div>
+    </div>
+
+       </div>
+               <div class="container">
+
+                       <div class="page-header">
+                               <h1>Apache 
Tamaya&amp;#8201;&amp;#8212;&amp;#8201;Extension: JodaTime</h1>
+                       </div>
+
+                       <p><em>2016-12-19</em></p>
+
+                       <p><div id="preamble">
+<div class="sectionbody">
+<!-- toc disabled -->
+</div>
+</div>
+<div class="sect1">
+<h2 id="Core">Tamaya JodaTime (Extension Module)</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_overview">Overview</h3>
+<div class="paragraph">
+<p>Tamaya JodaTime is an extension module to support the usage of <a 
href="http://www.joda.org/joda-time/";>Joda-Time</a>
+in conjunction with Tamaya. Tamaya JodaTime defines some additional property
+converters to retrieve Joda-Time types from a given configuration.</p>
+</div>
+<div class="paragraph">
+<p>Refer to the <a href="modules.html">extensions documentation</a> for 
further details
+about modules.</p>
+</div>
+<div class="paragraph">
+<p>tools to locate resources in your classpath or file system based on 
descriptive
+ant-styled resource patterns. To use this module add the following 
dependency:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-listing" 
data-lang="listing">&lt;dependency&gt;
+  &lt;grooupId&gt;org.apache.tamaya.ext&lt;/groupId&gt;
+  &lt;artifactId&gt;tamaya-jodatime&lt;/artifactId&gt;
+  &lt;version&gt;{tamaya_version}&lt;/version&gt;
+&lt;/dependency&gt;</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>After adding this dependency to your project you can retrieve
+Joda-Time based values directly from a given configuration.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-java" 
data-lang="java">Configuration configuration = 
ConfigurationProvider.getConfiguration();
+
+DateTime pit = configuration.get("pointInTime", DateTime.class)</code></pre>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_specifying_date_and_time_values">Specifying date and time values</h3>
+<div class="paragraph">
+<p>To be written.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_specifing_periods_and_durations">Specifing periods and durations</h3>
+<div class="paragraph">
+<p>To be written.</p>
+</div>
+</div>
+</div>
+</div></p>
+
+                       <hr />
+               </div>
+       </div>
+       <div>
+                       <div id="push"></div>
+
+                   <div id="footer">
+                     <div class="container">
+                       <p class="muted credit">&copy; 2014-2016 Apache 
Software Foundation | Mixed with <a href="http://getbootstrap.com/";>Bootstrap 
v3.1.1</a>
+                                                       | Baked with <a 
href="http://jbake.org";>JBake <span>v2.5.0</span></a>
+                                                       at 
<span>2016-12-19</span>
+                                               </p>
+                                               <p>
+                                                               
<b>Disclaimer</b>
+                    Apache Tamaya (incubating) is an effort undergoing
+                    incubation at
+                    The Apache Software Foundation (ASF), sponsored by
+                    the name of Apache Incubator. Incubation is required of
+                    all newly accepted projects until a further review 
indicates
+                    that the infrastructure, communications, and decision 
making
+                    process have stabilized in a manner consistent with other
+                    successful ASF projects. While incubation status is not
+                    necessarily a reflection of the completeness or stability 
of
+                    the code, it does indicate that the project has yet to
+                    be fully endorsed by the ASF.<br />
+                    <a href="http://incubator.apache.org/guides/website.html"; 
style="border:0px;" target="_target"><img class="incubator-logo" 
src="../../logos/egg-logo2.png"/></a>
+                                                       </p>
+                     </div>
+                   </div>
+
+                   <!-- Le javascript
+                   ================================================== -->
+                   <!-- Placed at the end of the document so the pages load 
faster -->
+                   <script src="../../js/jquery-1.11.1.min.js"></script>
+                   <script src="../../js/bootstrap.min.js"></script>
+                   <script src="../../js/prettify.js"></script>
+
+       </div>
+    </body>
+</html>

Reply via email to